我内心都喜欢
$('a[id^="Page"]').each(function () {
if ($(this).attr("id") == pageId) {
$('[id="' + pageId + '"]"').each(function () {
// code here
});
}
});
如何访问当前元素,因为this
来自之前的each
?
谢谢!
答案 0 :(得分:0)
你可以使用回调的第二个参数来获得这样的元素:
$('a[id^="Page"]').each(function (index, element) {
if ($(element).attr("id") == pageId) {
$('[id="' + pageId + '"]"').each(function (j, pageElment) {
console.log(element);
console.log(pageElment);
});
}
});
答案 1 :(得分:0)
首先,您可以使用以下回调签名来消除this
:
.each(function(outerIndex, outerElement) {
.each(function(innerIndex, innerElement) {
// Do stuff with outerElement...
});
});
这比使用this
重言式更具可读性。
但是,在您的示例中,您根本不需要在第一个each(...
内使用第二个each(...
,因为您正在查找确切的ID。如果您事先知道pageId
,则不需要任何each(...
。而只是使用id选择器:
$('#' + pageId).// Do your stuff
答案 2 :(得分:0)
this
指的是调用该函数的上下文。当您在一个或多个元素上调用.each
时,函数内的this
将始终引用当前元素。
答案 3 :(得分:-1)
只需将this
保存到变量,然后就可以使用它了:
$('a[id^="Page"]').each(function () {
var $that = $(this);
if ($that.attr("id") == pageId) {
$('[id="' + pageId + '"]"').each(function () {
console.log($that.data('val') === $(this).data('val'));
});
}
});
如果您的身份证号码为(例如id="12345"
),则为read this