请帮助我创建一个包含多个变量的函数 - 至少两个...
我有一个表,它是用 PHP 和 MySQL 创建的……所有的 ID 都是动态创建的,这就是为什么我需要以其他方式捕获它们而不是指定它们。
一小段代码用于更好地理解表的结构 - 我已包含在jsFIDDLE中
function delete_id(id) {
alert (id);
var test = $(this).closest('tr').attr('id');
alert(test);
};
试试这个:
var test = $('#'+id).closest('tr').attr('id');
$(this)
在您的功能中并不意味着您的想法。您需要使用id
传入的function
并获取该元素$('#'+id)
演示在这里
我相信在这里使用带有 on 方法的委托很有用。就像我们使用它一样,它不会将事件冒泡到文档中,也不会为所有 tr 或 DOM 中那些动态 tr 下的标签创建尽可能多的点击处理程序,这总体上对性能有好处。
$(document).ready(function(){
$('.ultomonitor').on('click','a', function(){
alert("id of div under a " + $(this).children().attr('id'));
alert("id of tr above a " + $(this).closest('tr').attr('id'));
});
});
更好的方法
HTML
<a href="#"><div id="8928392" onclick="delete_id(this)"
js
function delete_id(el) {
var test = $(el).closest('tr').attr('id');
alert(test);
};
或者
纯 JavaScript 方法
function delete_id(el) {
var test = getNearestTableRowAncestor(el).id;
alert(test);
};
function getNearestTableRowAncestor(htmlElementNode) {
while (htmlElementNode) {
htmlElementNode = htmlElementNode.parentNode;
if (htmlElementNode.tagName.toLowerCase() === 'tr') {
return htmlElementNode;
}
}
return undefined;
}