如何使用jQuery获取带增量id的span文本?

时间:2011-10-01 16:23:39

标签: jquery jquery-selectors

我很抱歉我已将代码更改为:

<table border="1">
<?php
$a = array('apple','banana','grapes','pineapple');
for ($x=0;$x<=3;$x++)
{
?>
    <tr>
        <td><div class='fruit' ><?php echo $a[$x]; ?></div></td>
        <td><a href='#' class='viewbutton'>View</a></td>
    </tr>
<?php
}
?>    
</table>

现在我的问题是如何在<div>内获取文字?我试过了$(".viewbutton").click(function() { alert ( $('#div_debit').text() ); });这只会返回第一个值。如何在数组中获取后续值?它是否使用id?

2 个答案:

答案 0 :(得分:1)

据我所知,没有CSS或jQuery特定的选择器可以匹配所有数值(如正则表达式中的[0-9]\d);如果我错了,请纠正我!

但是:当您给每个<span>课程“水果”时,您只需使用span.fruit访问它们。这将返回一个数组,您可以使用each()进行迭代。 this将设置为该功能中的当前项目,因此您可以检查所需的ID。

$('.fruit').each(function(){
    // this.id will be your numeric ID of the current item
});

此外,如果您的元素连续编号(例如1,2,3,而不是2,1,3),您可以使用:nth-child-pseudo-selector访问其中一个<span>。< / p>

如果所有这些对您不起作用;例如如果你还需要在其他地方使用类.fruit,我能想到的最后一个选项就是你手动迭代JavaScript中的元素。

for( var x = 0; x <= 3; x++ ) {
    var e = $('#'+x);
    // Do something with the element; or add it to an array of all the elements
}

修改:如果您不知道页面中有多少项目,但您希望匹配每个数字ID,则可以使用以下内容。

$('*').each(function(){
    if( this.id.match(/\d+/) ) {
        // do something with an element which has a numeric ID
    }
});

当然,如果你知道会有多少项,那么它最好使用上面的例子,因为它可能更快。

答案 1 :(得分:0)

你可能会犯错。不要将id用作这样的数字,而是选择至少添加一个前缀。

您可以使用$('span.fruit#1')。text()来获取第一个文本范围。如果你没有输入id,你可以使用$('span.fruit:nth-​​child(1)')。text()。