检查父节点是否包含ChildNodes
Check whether parent contains ChildNodes
我在它下面有一个父节点和一个子节点。如果父节点包含>=1个子节点那么它应该用" hello "进行确认否则如果父节点没有任何子节点那么它应该用"hi"
进行确认但是,它不是那样工作的。有时显示"hi",有时显示" hello "。
代码如下:
function childnode() {
var treeViewData = window["<%=items.ClientID%>" + "_Data"];
//if (treeViewData.selectedNodeID.value != ""){
var selectedNode = document.getElementById(treeViewData.selectedNodeID.value);
if (selectedNode.childNodes.count >= 0) {
return confirm("heloo");
}
else {
return confirm("hi");
}
return false; // don't send form
}
您似乎遇到了节点和元素之间的区别。节点也可以是,例如文本节点或空白节点。您可能需要元素。
您还会遇到在NodeList
上没有count
这样的属性的问题。您可能正在寻找length
。
用selectedNode.children.length
代替selectedNode.childNodes.count
。
(另外,变量selectedNode
命名错误:document.getElementById
返回元素,而不是节点。)
您需要的是length
属性,而不是count
属性。另外,我想你指的是> 0
,而不是>= 0
var selectedNode = document.getElementById(treeViewData.selectedNodeID.value);
if (selectedNode.childNodes.length > 0) {
return confirm("heloo");
}
这将告诉您是否有任何子节点,包括文本节点。如果您想知道是否有任何子节点是元素,您可以查看nodeType属性。
var selectedNode = document.getElementById(treeViewData.selectedNodeID.value);
var children = selectedNode.childNodes;
var anyChildElements = false;
for (var i = 0; i < children.length; i++)
if (children[i].nodeType === 1) {
anyChildElements = true;
break;
}
if (anyChildElements) {
return confirm("heloo");
}
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 货币代码为欧元-金额的格式不应包含小数
- 如何包含特定于每个视图angularjs的javascript文件
- 我如何修复包含在captcha的addthis中的错误
- 正在注入包含JS的HTML
- Json数据包含日期和时间格式
- Angular js-返回一个包含类似
- jQuery/JS包含运算符或类似运算符
- 如果href包含X,请更改href
- JavaScript数组包含一个值
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 在Meteor项目中安装并包含npm模块后出错
- 传递包含'%的参数'在URL中
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- 如何首先设置样式<td>表中包含在窗体中的元素
- 每天用javascript包含不同的php文件
- 数据绑定:'系统Char'不包含名为'xxxxx'
- 使用Javascript生成包含JSP的HTML
- 如何遍历包含对象的数组-javascript
- 检查父节点是否包含ChildNodes