javascript - JQuery 使用 .next ('.selector' 选择下一个 .selector 元素)

标签 javascript jquery

我的 HTML:

<ul>
   <li class="select-me"><b>1</b> <span>Click</span></li>
   <li>2</li>
   <li class="select-me"><b>3</b> <span>Click</span></li>
   <li>4</li>
</ul>

我的JS:

$(function() {
   $('ul li span').on('click', function() {
      var previousSelectMe = $(this).parent().prev('.select-me');
      var nextSelectMe = $(this).parent().next('.select-me');

      console.log(nextSelectMe.find('b').text(), previousSelectMe.find('b').text());
   });
});

现在我的代码略有不同,但这是主要逻辑。我遇到的问题是我无法获取 NEXT .select-me 元素,因为中间没有 select-me 元素。因此,使用上面的代码,下一个元素未定义。

如果我将 HTML 结构更改为:

<ul>
   <li class="select-me"><b>1</b> <span>Click</span></li>
   <li class="select-me"><b>3</b> <span>Click</span></li>
   <li>2</li>
   <li>4</li>
</ul>

工作正常并打印 3 进行下一步。当我点击 3Click 项目时,它会给出正确的之前的 1

最佳答案

如果你想获取下一个元素,即使它不相邻,你可以使用它:

.nextAll('.select-me:first');
.prevAll('.select-me:first');

关于javascript - JQuery 使用 .next ('.selector' 选择下一个 .selector 元素),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25169958/

相关文章:

jquery - Bootstrap 表单控制类与 Knockout 数据绑定(bind)冲突

jquery - 访问控制允许解析应用程序调用中缺少 Origin header

javascript - 无法获取每个父 div/类中的子 div ID

javascript - 正则表达式不捕获字符

javascript - 添加和删​​除隐藏字段数组中的值

javascript - 使用动态内容调整父元素的大小

javascript - 无法读取未定义 [Angular2] 的属性 'isStopped'

javascript - 从单例创建新实例

jquery - 在追加 jquery 对象之前绑定(bind)事件

javascript - javascript选中复选框时如何禁用附加的输入文本框