通过以下方式获得4个div的值:first,:second,:nth - jQuery

X10*_*0nD 1 jquery

我如何获得价值

<div>
    <span class="xxx" id="VariesAlways">x1</span>
    <span class="xxx" id="VariesAlways">x2</span>
    <span class="xxx" id="VariesAlways">x3</span>
    <span class="xxx" id="VariesAlways">x4</span>
</div>
Run Code Online (Sandbox Code Playgroud)

Normaly

$('.xxx').trigger(function() {

    $(this).attr('value');
});
Run Code Online (Sandbox Code Playgroud)

但我想要它

$('.xxx:first').attr('value');
$('.xxx:second').attr('value');
$('.xxx:third').attr('value');
$('.xxx:fourth').attr('value');
Run Code Online (Sandbox Code Playgroud)

但是当一个alert($('.xxx:first').attr('value'));完成它它给我未定义.

谢谢让

jAn*_*ndy 6

好吧,.attr('value')如果元素没有属性,将无法工作value..这肯定是:)

要按所需顺序选择它们,您应该使用:eq伪选择器,或者更好(=更快).eq()方法.

$('span.xxx').eq(0).text()
$('span.xxx').eq(1).text()
$('span.xxx').eq(2).text()
$('span.xxx').eq(3).text()
Run Code Online (Sandbox Code Playgroud)

.eq()需要索引作为参数.
无论如何,你也可以通过调用来循环它们.each()

$('span.xxx').each(function(index, elem) {
    alert(elem.textContent || elem.text);
});
Run Code Online (Sandbox Code Playgroud)

.each()将在DOM中出现的节点上循环.这可能是更好的方式.

参考:.EQ() ,.每个()