javascript的onclick属性是如何从数组循环中获得更多输出的?


How does a javascript onclick attribute work for more output from array with loop?

//我的问题是当我的checkit()函数被调用时,它只显示check.png图像一次,旁边是数组中的第一项。

<?php
require 'connectit.php';
if($result = $db->query("SELECT * FROM people ORDER BY id")) {
    if($count = $result->num_rows) {
        echo "<h3>He's got $count bills to pay.</h3>";
        echo "<p>";
        while($row = $result->fetch_object()) {
            echo "<div id='"check'" onClick='"checkit();'"><img id='"img'" src='"'" /></div>";
            $id = $row->id;
            echo  $row->bill_name, ': $', $row->bill_cost,
            ' ',"<a href='"delete_id.php?id=" . $id . "'">X</a><br/><br/>"; 
            echo "</p>";    
        }       
    }
}
?>
//javascript onclick function
<script type="text/javascript">
function checkit(){
document.getElementById("img").src = "check.png";
//needed to put a line through the text, to mark through it but can't figure that out either. I tried this.
document.getElementById("p").style.texttransform = "underline"; //didn't work for me.
}
</script>

试试下面的代码:

var list = document.getElementsByTagName("img");
for(var i=0;i<list.length;i++) {
    list[i].src = "check.png";
}

观察:我没有测试过它。

更新:

var list = document.getElementsByTagName("img");
for(var i=0;i<list.length;i++) {
    if(list[i].id == 'some_id') {
        list[i].src = "check.png";
    }
}

HTML中所有的"id"属性必须是唯一的

为了更高效,document.getElementById()在第一个具有您正在查找的id的元素处停止。