dojo问题检查div是否有值

时间:2013-11-05 14:15:44

标签: dojo

我正在使用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,但我只想要值。

我找不到节点对象上的方法来获取实际值。

非常感谢任何帮助。

3 个答案:

答案 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。