JS中的“theElement in dangerousElements“中in方法的应用

<html>
 <head><title>DOM1的文档属性与聚集</title>
 <script type="text/javascript">
 <!--
 var dangerousElements ={  //定义一些元素,这些元素将被禁止添加
  'html':true,
  'head':true,
  'body':true,
  'script':true,
  'style':true,
  'frameset':true,
  'frame':true 
 };

 var emptyElements = {  //定义一些元素,不可向其中添加文本
  'hr':true,
        'meta':true,
  'br':true,
  'area':true,
  'base':true,
  'basefont':true,
  'link':true,
  'frame':true
 };

 function addElement(theElement,theText){  //函数:添加元素及其值
     alert(theElement in dangerousElements);
  if(theElement in dangerousElements){   //如果元素包含在禁止列表中
   alert("错误:禁止添加该元素!");
   return;
  }

  //调用document.createElement()将要添加的元素名称存储在newNode中
        var newNode = document.createElement(theElement);

  //如果输入了元素值(文本长度大于0),并且元素名称不在空元素列表中
  if((theText.length>0)&&!(theElement in emptyElements)){
      //调用document.createTextNode()添加新的文本
      var newText = document.createTextNode(theText);
   //newNode.appendChild()将newText作为newNode的内容
   newNode.appendChild(newText);
  }else{
   alert("注意:不要向空元素中添加文本!");
  }
        //向id为“insertHere”的元素中添加newNode新节点
  document.getElementById('insertHere').appendChild(newNode);
 }


 //-->
 </script>
</head>
<body>
<div id="insertHere" style="width:100%;border-style:dashed;border-width:1px;">&nbsp;</div>
<form id="theForm" axtion="#" name="theForm" method="get">
<input type="text" value="在这里输入元素名称" name='theTag' id="theTag">
<input type="text" name="theText" id="theText" value="在这里输入文本">
<input type="button" value="创建元素" onclick="addElement(document.theForm.theTag.value,document.theForm.theText.value);">
</form>
</body>
</html>

 

对于

检验一:

var dangerousElements ={  //定义一些元素,这些元素将被禁止添加
  'html':true,
  'head':true,
  'body':true,
  'script':true,
  'style':true,
  'frameset':true,
  'frame':true 
 };


  if(theElement in dangerousElements)就可判断theElement 是否在dangerousElements中。若为html、head、body、script、style、frameset、frame则返回true,否则返回false。

检验二:

var dangerousElements ={  //定义一些元素,这些元素将被禁止添加
  'html':true,
  'head':true,
  'body':true,
  'script':true,
  'style':true,
  'frameset':true,
  'frame':true,

  'p'
 };

输入“p”,然后再点击“创建元素”按钮则会报脚本错误。

检验三:

var dangerousElements ={  //定义一些元素,这些元素将被禁止添加
  'html':true,
  'head':true,
  'body':true,
  'script':true,
  'style':true,
  'frameset':true,
  'frame':true,

  'p':false
 };

输入p”,然后再点击“创建元素”按钮则依然返回true。

这说明只要在dangerousElements中存在这个标签名,不管它“:”后面是true还是false都认为在该列表里存在该元素,但是“:”后面的值又不可去掉。

本人对js不是太熟练,请问这个叫什么方法?为什么一定要这样写?

 

 

 

你可能感兴趣的:(html,function,脚本,文档,input,button)