如何在选择器中使用jQuery.each()的“this”?

时间:2012-04-05 11:18:00

标签: javascript jquery

任何人都可以告诉我以下哪里出错?我希望系统在循环中警告每个列表项的锚文本,但是不能考虑如何构造'this'语法?

$('.jsGrid ul li').each(function(index) {
    alert(index + ': ' + $('this .overlayContent a').text());

});

干杯 保罗

4 个答案:

答案 0 :(得分:1)

this是一个变量,不会在字符串中被识别。构造它周围的jQuery对象并使用find来获取您正在寻找的锚元素:

alert(index + ': ' + $(this).find('.overlayContent a').text());

如果你搜索$("this .overlayContent a") - jQuery会查找这样构造的元素:

<this>
   <div class='overlayContent'><a>Some text here</a></div>
</this>

答案 1 :(得分:1)

alert(index + ': ' + $('.overlayContent a',this).text());

答案 2 :(得分:0)

$('.jsGrid ul li').each(function(index) {
    alert(index + ': ' + $(this).find('.overlayContent a').text());
});

答案 3 :(得分:0)

您无法像这样使用此关键字。而是使用这个

$('.jsGrid ul li').each(function(index) {
    alert(index + ': ' + $('this').find('a').text());
});

或者你就像这样'

$('.jsGrid ul li').each(function(index) {
    alert(index + ': ' + $('this').children().text());
});