Javascript 在jquery中使用索引或eq按类捕获元素
HTML代码:Javascript 在jquery中使用索引或eq按类捕获元素,javascript,jquery,Javascript,Jquery,HTML代码: <table border='1' cellpadding='5'> <tr> <td class="order"><a href="#">two</a></td> <td>demo</td> <td>last</td> </tr> <tr> <
<table border='1' cellpadding='5'>
<tr>
<td class="order"><a href="#">two</a></td>
<td>demo</td>
<td>last</td>
</tr>
<tr>
<td>two</td>
<td class="order"><a href="#">three two</a></td>
<td>sample</td>
</tr>
<tr>
<td>two</td>
<td class="order"><a href="#">five two</a></td>
<td>sample</td>
</tr>
<tr>
<td>five</td>
<td>quick</td>
<td class="order"><a href="#">nine</a></td>
</tr>
</table>
单击任何顺序
类,我希望获得具有相同顺序
类的上一个或下一个元素。我的代码有什么问题
这是我的
谢谢。该代码有两个问题:
.order
元素都是其父元素中的第二个子元素var text = $(".order:eq(index-1)").text();
…使用索引
字面意思,它不会交换索引
变量的值索引
,您的思路是正确的,不过,您只需使用:
然后,与其构建jQuery无法移交给浏览器的选择器(因为它使用jQuery特定的:eq
选择器),不如使用以下函数:
但您可能还需要处理没有前面元素的情况,可能是:
var text = index > 0 ? orders.eq(index - 1).text() : "default text";
实例:
$('.order')。单击(函数(){
风险值订单=$(“.order”);
var指数=订单指数(本);
var text=index>0?orders.eq(index-1.text():“默认文本”;
警报(文本);
返回false;
});代码>
演示
最后的
二
样品
二
样品
五
快的
索引
是一个变量,因此必须将其添加到jQuery中的字符串中,如下所示:
$(".order").click(function() {
var index = $(".order").index(this);
var text = $(".order:eq("+(index-1)+")").text();
alert(text);
});
您需要根据集合集查找索引
var $orders = $('.order').click(function () {
var index = $orders.index(this);
if (index > 0) {
var text = $orders.eq(index - 1).text();
alert(text);
}
});
演示:
var text = index > 0 ? orders.eq(index - 1).text() : "default text";
$(".order").click(function() {
var index = $(".order").index(this);
var text = $(".order:eq("+(index-1)+")").text();
alert(text);
});
var $orders = $('.order').click(function () {
var index = $orders.index(this);
if (index > 0) {
var text = $orders.eq(index - 1).text();
alert(text);
}
});