有人可以解释为什么以下不起作用请尽可能多地返回包含在标签中的单元格的内容吗?我正在将它与DataTables插件结合使用。我基本上想要围绕单元格的当前内容包装一个链接。
$('table#example tbody td:nth-child(1), table#example tbody td:nth-child(2)').html('<a href="view-aae.asp?id=">[' + $(this).text() + ']</a>').click(function () {
$("#thedialog").attr('src', $(this).next('.dialog').attr("href"));
$("#somediv").dialog({
width: 800,
height: 600,
modal: true,
close: function () {
$("#thedialog").attr('src', "about:blank");
}
});
return false
});
答案 0 :(得分:1)
问题在于this
并不是您认为的。您似乎认为构造this
函数的参数时.html()
将是设置其内容的特定元素,但它不是 - 它是...别的东西(虽然究竟取决于代码的上下文)。试试这个:
$('table#example tbody td:nth-child(1), table#example tbody td:nth-child(2)').html(function() {
return '<a href="view-aae.asp?id=">[' + $(this).text() + ']</a>';
});
那样this
确实是指当前设置内容的元素。
答案 1 :(得分:1)
这不是this
工作的方式。
在你的情况下,$(this)
可能是窗口,尝试将代码包装在.each()
中,它可能会有效:
$('table#example tbody td:nth-child(1), table#example tbody td:nth-child(2)').each(function(){
$(this).html('<a href="view-aae.asp?id=">[' + $(this).text() + ']</a>').click(function () {
$("#thedialog").attr('src', $(this).next('.dialog').attr("href"));
$("#somediv").dialog({
width: 800,
height: 600,
modal: true,
close: function () {
$("#thedialog").attr('src', "about:blank");
}
});
return false
});
})