<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;"> </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="创建元素" οnclick="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不是太熟练,请问这个叫什么方法?为什么一定要这样写?