确定。这是我在我的正文脚本中更改某些列表项的图像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>
答案 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
});