0

私は道場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全体を返しますが、値だけが必要です。

実際の値を取得するためのノード オブジェクトのメソッドが見つかりませんでした。

どんな助けでも大歓迎です。

4

3 に答える 3

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/

よろしく、ミリアム

于 2013-11-05T14:55:53.310 に答える
0

ここで node.innerHTML の代わりに node.innerText を試すことができます。ところで: firefox は innerText をサポートできません。

于 2013-11-08T04:37:46.253 に答える
0

「innerHTML」を使用するのではなく、 に含まれる HTML のテキストを調べるために、DIV子のリストを要求することを検討します。そのリストの長さが 0 の場合 (つまり、子がない場合)、DIVは空です。

例えば

query(".callToActionItems").forEach(function(node) {
   if (query("> *", node).length == 0) {
   } else {
      domStyle.set(node, "display", "none");
   }
}));
于 2013-11-05T14:55:07.783 に答える