Javascript 随时随地更改图片

标签 javascript concatenation

更新问题:
@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/

相关文章:

mysql - prestashop : MySQL Query For product features

javascript - 如何将椭圆的颜色更改为随机颜色

javascript - 单击时使用 Javascript 显示/隐藏 Div

javascript - 为什么这个仅输入数字的函数实际上不适用于输入类型 :number?

bash - 将两个文件粘贴到第一个文件

python - Python中无法连接字符串和整数的原因

python - 使用 python 连接要素类的字段,无需字段计算器

javascript - 在没有嵌套函数的情况下跟踪 javascript 回调的完成

javascript - 在 Backbone.js 中使用模型对集合进行过滤/排序

r - 如何循环遍历数据框列表以在 R 中设置列​​名称?