Javascript放置问题

时间:2015-01-04 22:13:08

标签: javascript jquery html

确定。这是我在我的正文脚本中更改某些列表项的图像src所做的操作。默认情况下,这些列表项会加载不同的图像。我尝试做的是检查我的urlArray中的文本,然后将图像src设置为somethingelse.png。我认为在主体部分末端运行的循环循环会改变源,但它不会改变实际图像。我怎样才能确保它也改变了画面?

for (var i=0; i<urlArray.length; i++) {
var imgname = "listimg";
if (urlArray[i][1]==="fi"){
  var currentname = imgname.concat(i);
  if(document.getElementById(currentname) ) //check if element exists
  {
     document.getElementById(currentname).src= "write.png";
     //for debugging; delete from production code.
     console.log(document.getElementById(currentname).src); //should write "write.png" to console.
  }
}
}

感谢您的回答和评论,请原谅我成为新手......

还有我的html中的一些项目:

<li>
<a href="#" onclick="datasent(1);"><img src="mcicon.png" id="listimg0" alt="Gummy Bears" /><span id="test1score" class="ui-li-count">12</span>
<h2 id="testname0"> Test Name 0</h2>
<p id="testexp0">Test Explanation 0</p>
</a>
</li>

<li>
<a href="#dog" onclick="datasent(2);"><img src="mcicon.png" id="listimg1" alt "Min Pin" />
<h1 id="testname1">Test Name 1</h1>
<p id="testexp1">Test Explanation 1</p>
</a> 
</li>

1 个答案:

答案 0 :(得分:1)

查看您提供的示例,代码仅在body元素的末尾起作用,因为它引用了代码执行前加载的元素。如果您将代码移动到页面顶部,则会在页面上的元素存在之前运行它,因为它在加载脚本后立即运行

为了引用尚未加载的元素,在jQuery中,您需要将任何代码包装在 DOM ready handler 中。在纯JavaScript中,你可能已经使用了window.load事件,但是jQuery one更聪明,并且只要DOM元素全部加载就会运行。

e.g。

$(document).ready(function(){
    // Your code here
});

的较短版本:

$(function(){
    // Your code here
});