0秒javascript替换

时间:2017-11-21 20:21:04

标签: javascript load

我有一个代码,看起来像这样。 它基本上取代了“回声”''''与图像。 但是......当我加载或重新加载页面时,我仍然可以看到' php echo''我想要在0秒内直接加载图像,所以我不需要看到' php echo''并在0秒内加载该图像。 ///抱歉我的英语不好。

视频示例:https://youtu.be/XFI7DIrlVcM



<td id="X"><?php echo $row['11']; ?></td>

<script>
var tdList = document.getElementsByTagName('td');
for(var i=0; i< tdList.length; i++){ 
  if(parseInt(tdList[i].innerHTML.trim())>= 0 && parseInt(tdList[i].innerHTML.trim())< 10 && tdList[i].getAttribute('id') == "X")
  tdList[i].innerHTML = '<img src="http://i.imgur.com/bgwZcHq.png">'
}
</script>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

然后将该值从td的内容中删除,并将其作为 data attribute 放在td上,然后您可以在JavaScript中检索该值使用 dataset 属性。

&#13;
&#13;
<!-- Put the empty <img> element into the cell so that the DOM is built correct from the start -->
<td id="X" data-value="<?php echo $row['11']; ?>"><img id="replace" title=""></td>

<script>

// Get all the td elements in an array
var tdList = Array.prototype.slice.call(document.querySelectorAll("td"));

// Get a reference to the empty image element
var img = document.getElementById("replace");

// Loop over the array
tdList.forEach(function(td){
  var val = parseInt(td.dataset.value, 10);
  
  // Check the id first for better performance since we don't care 
  // about the value unless we have the right element:
  if(td.id === "X" && val >=0 && val < 10 ){
    // Now, we only have to update the image element, not rebuild the DOM
    replace.src = "http://i.imgur.com/bgwZcHq.png";
  }
});

</script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

页面上没有<td>呈现,因为<td>仅在非常具体的上下文中有效:在<tr>的{​​{1}}内,这就是为什么您的<table>根本没有被提取。

如果您将<td>更改为<td>并运行相同的代码,您将获得预期的结果:

&#13;
&#13;
<span>
&#13;
var tdList = document.getElementsByTagName('span');
for(var i=0; i< tdList.length; i++){ 
  if(parseInt(tdList[i].innerHTML.trim())>= 0 && parseInt(tdList[i].innerHTML.trim())< 10 && tdList[i].getAttribute('id') == "X")
  tdList[i].innerHTML = '<img src="http://i.imgur.com/bgwZcHq.png" />'
}
&#13;
&#13;
&#13;