当我使用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';
}*/
}
}
}
感谢,
布鲁诺
答案 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,我认为它适合你。