作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
更新问题:
@Mouser,谢谢您的回答。虽然我确信代码没问题,但它实际上没有做任何事情。我相信这是因为我在正文部分的元素之后运行脚本。因此,创建了列表,然后运行代码并且 listimgx 的源发生变化,但如何才能使其实际显示命名的 src?在当前状态下,页面加载,文本项发生变化,但图片没有变化。我尝试向 ul 添加一个类,并在脚本末尾添加 ListView 刷新,但它不起作用。
原始问题:
好的,下面的代码应该检查一个二维数组值,如果它包含字符串“fi”,那么它应该将第 i.th listimg.source 更改为 write.png。
换句话说,当前的img源被设置为“mcicon.jpg”。假设 urlArray[4][1] 包含“fi”;现在我希望 listimg4.src 为“write.png”。我正在尝试使用 for 循环,但到目前为止还没有成功。我尝试了这两种方法都没有成功:
imgname.concat(i).src="write.png"
currentname.src="write.png"
//some items in my list:
<li>
<a href="#" onclick="datasent(1);"><img src="mcicon.png" id="listimg0" alt="Gummy Bears" /><span 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>
<li>
<a href="#gummies" onclick="datasent(3);"><img src="mcicon.png" id="listimg2" alt="Gummy Bears" />
<h1 id="testname2"> Test Name 2 </h1>
<p id="testexp2">Test Explanation 2</p>
</a>
</li>
//and my javascript code:
<script>
var urlArray = [[1, "mc", "To Be Present", "Choose the correct answer.", 10, 0, 0],[2, "fi", "To Be Present", "Fill in the blanks using To Be Present.", 10, 0, 0]]
//those work:
document.getElementById("testname1").innerHTML = urlArray[1][2];
document.getElementById("testexp1").innerHTML = urlArray[1][3];
//this one does not work! the icon doesn't change!
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.
}
}
}
最佳答案
此代码将不起作用。您正在请求 string
上的 src 属性。那不是图像元素。 document.getElementById("testname1")
也许吧。因此,将该元素的 src
设置为 currentname
。
urlArray = [[0, "si"], [1, "wi"], [2, "fi"]];
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.
}
}
}
<img src="" id="listimg2" />
关于Javascript 随时随地更改图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27680607/
我是一名优秀的程序员,十分优秀!