我有以下 JQuery,它动态地向表中添加一行:
var i = 0;
...
i++;
var rowId = "itemEntry" + i + "";
alert(rowId);
var strRowEntry = '<tr id="itemEntry' + i + '"><td class="rowItem">' + $("#itemChoice option:selected").text() +'</td><td class="rowItem">' + priceEach + '</td><td class="rowItem">' + $("#quantity").val() + '</td><td class="rowItem">' + $("#price").val() + '</td><td class="rowItem"><a href="#" onclick="doThis(' + rowId + ');"><img class="deleteRow" src="edit.png" border="0" id="imgEdit" /></a></td></tr>';
$('#itemTable tr:last').after(strRowEntry);
我正在尝试从 doThis()
函数中获取行 ID,如下所示:
function doThis(p) {
alert(p);
}
每当警报出现时,我都会收到以下消息:
[object HTMLTableRowElement]
我做错了什么?为什么它不显示表 ID?
我想要做的是为每一行提供给定行每一列的值...
我该如何实现?
最佳答案
您的代码最终会执行此操作(假设 i == 42):
onclick="doThis(itemEntry42);"
表达式 itemEntry42
不是字符串,它的计算结果是一个标识符,它将是带有 id="itemEntry42"
的元素。参数 p
最终成为元素,而不是元素的 id。
您应该在 id 周围使用撇号使其成为字符串文字而不是标识符:
... onclick="doThis(\'' + rowId + '\');" ...
关于javascript - 如何获取表格给定行的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24747794/