我有一张桌子:
<table width="160" align="center" id="my_table">
<tbody>
<tr>
<td><img src="Color1.png" width="160" height="40" alt="1"></td>
</tr>
<tr>
<td><img src="Color2.png" width="160" height="40" alt="2"></td>
</tr>
<tr>
<td><img src="Color3.png" width="160" height="40" alt="3"></td>
</tr>
</tbody>
</table>
我允许用户上下移动颜色块 - 颜色更多。在过程结束时,我希望知道每个alt的位置(哪个子位置)并使用jQuery将其保存为单独的变量。我试过了:
$('#my_table').on('click', 'img', function() {
var color_rated_1 = $("#my_table.tr:nth-child(1)");
alert("color_rated_1 is " + color_rated_1);
});
$('#my_table').on('click', 'img', function() {
var color_rated_2 = $(".tr:nth-child(2)");
alert("color_rated_2 is " + color_rated_2);
});
$('#my_table').on('click', 'img', function() {
var color_rated_3 = $("#my_table tr:nth-child(3)");
alert("color_rated_3 is " + color_rated_3);
});
请注意,这些都有一点不同 - 过去很多天我尝试了很多其他的变化。我还查看了我找到的所有示例,似乎没有任何效果。救命。谢谢。瑞克
答案 0 :(得分:2)
迭代集合时提供索引:
$("#my_table img").each(function(index, image){
alert(image.alt + " is at position " + index);
});
您还可以使用.index()
获取集合中的位置:
var $table = $("#my_table");
$table.on("click", "img", function(){
alert($table.find("img").index(this));
});
答案 1 :(得分:0)
这个怎么样?
var $table = $('#my_table').on('click', 'img', function() {
var index = $table.find("img").index(this);
alert( $(this).attr("src") + " is " + index);
});
单击图像后,它将查找表格中的所有图像,并使用.index()
method评估单击图像的索引。
答案 2 :(得分:0)
为了获得alt
值的数组,以便它们出现,您可以执行以下操作:
var order = $.makeArray($("#my_table img").map(function() {
return $(this).attr("alt");
}));
alert("The order is " + order.join(", "));
或者您可以订购创建由alt:
键入的对象 var indexes = {};
$("#my_table img").each(function(i) {
indexes[$(this).attr("alt")] = i;
});
alert("Index 1 is " + indexes["1"]);
alert("Index 2 is " + indexes["2"]);
alert("Index 3 is " + indexes["3"]);