javascript - jQuery:查找下一个不是兄弟的元素

标签 javascript jquery

假设我有以下 HTML:

<span>
    <span id="x1" class="x">X1</span>
</span>
<span>
    <span>
        <span id="x2" class="x">X2</span>
    </span>
</span>

$(this)<span id="x1" ...> .

找到下一个元素匹配的最佳方法是什么 .x使用 jQuery?
实际文档的结构是不可预测的,所以提供的 HTML 只是一个例子。

我不能使用 nextAll因为它只能找到 sibling 。
如果我这样做 $('.x') ,它找到所有,但我必须迭代/比较。
有更好的解决方案吗?

另请参阅:http://jsfiddle.net/JZ9VW/1/ .

最佳答案

选择class为x的所有元素,计算当前元素的索引,得到索引+1的元素:

var $x = $('.x');
var $next = $x.eq($x.index(this) + 1);

之所以可行,是因为元素是按文档顺序选择的。您只需在页面加载时选择所有 .x 元素一次(如果它们不是动态创建的)。

关于javascript - jQuery:查找下一个不是兄弟的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14035206/

相关文章:

javascript - 使用 jqueryui/jquery 调整 div 的 padding-top 大小

javascript - 简单模式正则表达式验证不返回错误消息

jquery - 带有值和文本字段的 ASP.NET MVC jquery 自动完成

javascript - 如何使用 jquery 设置 data-url 属性的新值?

javascript - 添加了当用户点击后退按钮时的提醒,但现在我想在提交表单时将其删除

javascript - date() 未返回预期值

javascript - 事件未使用 Firefox 定义

javascript - jQuery - 从下拉列表中更改选项时显示加载符号

javascript - 使用 jsonp 和 ajax HTML

javascript - JQuery 方法和 DOM 属性