我正在使用dojo 1.8
我有以下html代码段:
<div id="abc" class= "callToActionItems">
</div>
<div id="abc" class= "callToActionItems">
</div>
<div id="abc" class= "callToActionItems">
<P>I have some value</P>
</div>
我有一个要求,我需要检查3个div是否有一个值,然后为那些没有内容的div做一些事情并将其设置为不显示。
我尝试了以下代码:
require([
"dojo/query",
"dojo/domReady!"
], function(query){
query(".callToActionItems").forEach(function(node, index, arr){
console.log(node);
if (node.innerHTML) {
} else{
domStyle.set(node, "display", "none");
}
});
});
这里node.innerHTML
返回整个html,但我只想要值。
我找不到节点对象上的方法来获取实际值。
非常感谢任何帮助。
答案 0 :(得分:1)
试试这样:
require(["dojo/query","dojo/dom-style", "dojo/domReady!"], function(query,domStyle){
query(".callToActionItems").forEach(function(node, index, arr){
if(node.innerHTML){
alert('I have a child');
}
else{
alert('I have none - I'm out');
domStyle.set(node, "display", "none");
}
});
});
以上示例的小提琴:http://jsfiddle.net/fJh4x/
此致,Miriam
答案 1 :(得分:0)
不是使用“innerHTML”来检查DIV
中包含的HTML的文本,而是考虑询问子列表以及该列表是否为0长度(即,如果没有子节点),则{ {1}}为空。
例如
DIV
答案 2 :(得分:0)
你可以在这里尝试node.innerText而不是node.innerHTML。 BTW:firefox不支持innerText。