我很抱歉我已将代码更改为:
<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?
答案 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()。