javascript函数中的错误

时间:2011-04-19 12:29:28

标签: javascript html dom xhtml

当我使用javascript函数时,我遇到了一个错误:我的函数显示了div元素的内容,但是当我取消注释某些代码时,它不再起作用了。 有人知道为什么?

    function traverse(){
        var root=document.getElementById('tree0').childNodes;
        for(var i=0;i<root.length;i++) {
                var lis = root[i];
                var number =0;
                for (var member in lis) {
                    output.innerHTML+=lis[member];
                    /*var assertion = lis[member];
                    var result = assertion.indexOf("Bookmarks menu");
                    if(result != -1) {
                       output.innerHTML+='Test';
                    }*/

                 }
         }
     }

感谢,

布鲁诺

3 个答案:

答案 0 :(得分:4)

当您 for ...

时,您可能会得到更多的期望 这是你想要的吗? http://jsfiddle.net/bM9Bn/

<div id="tree0">
  <div id="bla">
    bla
  </div>
  <div id="Bookmarks menu">
    Bookmarks Menu
  </div>
</div>
<hr />
<div id="output"></div>
<script>
var output = document.getElementById("output")
function traverse(){
  var root=document.getElementById('tree0').childNodes;
  for(var i=0;i<root.length;i++) {
    var lis = root[i];
    var number =0;
    for (var member in lis) {
//      output.innerHTML+="["+member+":"+lis[member]+"]";
      if (member == "id" || member == "textContent") {
        output.innerHTML+="["+member+":"+lis[member]+"]";
        var assertion = lis[member];
        // the typeof test not needed if we only process textContent and ID
        if (typeof assertion == "string") { 
          var result = assertion.indexOf("Bookmarks menu");
          if(result != -1) {
            output.innerHTML+='<span style="color:red">Test</span>';
          }
        }
      }
    }
  }
}
traverse()
</script>     

答案 1 :(得分:0)

快速查看 - var和if语句是否应该结果?

var resultat = assertion.indexOf(“Bookmarks menu”);                     if(结果* at *!= -1){

答案 2 :(得分:0)

您正在检查'result'变量,但设置'resultat'变量。尝试在条件中使用resultAt,我认为它适合你。