javascript - jquery遍历DOM寻找连续值

标签 javascript jquery dom jquery-selectors traversal

感谢您的浏览,所有有用的答案都已投票通过。 这是我的标记。我试图找到 2 个连续的 div cmk1 and cmk2内容RIGHTHERE按顺序排列。

  • div id 1不应该匹配,因为有一个 right但不是 here .
  • div id 3不应该匹配,因为有一个 here但没有right .
  • 我正试图找到类似于 div id 2 的东西其中 right后面是here .此外,文本必须准确无误:<div>more than right</div>不应匹配,即使它包含单词 right

执行此操作最有效的方法是什么?

更新:我有个想法,我可以找到 each class=cmk1 .如果匹配正确,我可以选择它的 next (cmk2) 如果它也匹配,那就是我要找的。但是我该怎么做 while在 jquery 中循环?最重要的是我该如何退出?

<div class="sep" id="1">
  <div class="cmk1">right</div>
  <div class="cmk2">valc</div>
  <div class="opp">vald</div>   
  <a class="go">Go</a>                  
</div>
<div class="clear">
<div class="sep" id="12">
  <div class="cmk1">RIGHT</div>
  <div class="cmk2">HERE</div>
  <div class="opp">vala</div>   
  <a class="go">Go</a>                  
</div>
<div class="clear">
<div class="sep" id="59">
  <div class="cmk1">vale</div>
  <div class="cmk2">valf</div>
  <div class="opp">here</div>   
  <a class="go">Go</a>                  
</div>
<div class="clear">

最佳答案

$('div.sep > div').each(function() {
    if($(this).text() == 'RIGHT') {
        if($(this).next('div').text() == 'HERE') {
            alert('Values occur consecutively in div id: ' +  $(this).parent().attr('id'));
            return false;            
        }
    }
});

我基本上遍历了每个 .sep div 的所有子 div 并测试了第一个单词。如果匹配,next可用于确定下一个 div 是否包含第二个单词。

关于javascript - jquery遍历DOM寻找连续值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1579603/

相关文章:

javascript - 从 api 获取点击数据

javascript - 如何使用 javascript 中的数据而不是 HTML 中的 ui-sref 传递 URL?

javascript - 将 react 类应用于单个元素 onMouseEnter

javascript - 在所有浏览器中隐藏垂直滚动条

php - 如何使用 PHP DOMDocument 删除父 Div

javascript - 在 Preact 中渲染 HTMLImageElement dom 节点

javascript - knockout validation 使用可观察参数扩展 'required only if'

javascript - 用户单击使用按钮后更新表

jquery - 如何使用 jquery 和换行符填充文本区域?

javascript - 我怎样才能得到一个会改变多个 div 的 jquery 幻灯片插件?