我希望用户单击此表中的图像,该图像是根据从 Web 服务发送的 JSON 数据动态创建的,并更改图像。再次单击图像时,它将变回第一个图像(仅在两个图像之间交换)。
我有一个通过 jQuery 的$.ajax()
函数创建的表,如下所示:
<table border="0" width=80% id="table">
<thead>
<tr>
<td><h3>Check to Renew</h3></td>
<td width=40%><h3>Vendor Part</h3></td>
<td width=100%><h3>Part Description</h3></td>
<td><h3>Unit Price</h3></td>
<td><h3>Quantity</h3></td>
</tr>
</thead>
<tbody>
<tr class="template">
<td><img src="images/checkmark.png" alt="check" id="row1" onclick=""></td>
<td>$vendorPart</td>
<td>$partDescription</td>
<td>$price</td>
<td><input class="quantityClass" name="quantity" value="$quantity"/></td>
</tr>
</tbody>
</table>
这是更改图像的简单 Javascript 函数:
renewimg=Array("images/checkmark.png","images/gray_x.png");
function rowImageRefresh(y)
{
document.getElementById(y).src=renewimg[++m];
if (m==1)
{m=-1;}
}
这个 Javascript 函数工作得很好,但是只有当我将图像 id 传递给它时(在这种情况下特定于行)。用于测试目的的硬编码证明了这一点。我的问题是我希望能够在创建表行时动态创建行 ID,然后具有可以传递该 ID 的功能。
我想如果我要更多地说明这一点,它会看起来像这样:
JavaScript: var row = 1;
HTML:
//table data
<td><img src="images/checkmark.png" alt="check" id="row+[i];i++;" onclick="rowImageRefresh(this.row.id)"></td>
//more table data
在创建每一行时动态创建 id 并且 onclick 函数传递单击的图像的行。