如何选择具有特定文本的框?

Mar*_* AJ 4 html javascript jquery

我有这个HTML:

<h5>something</h5>
<ul>
   <li class="name">John</li>
   <li class="age">21</li>
</ul>
<h5>specific text</h5>
<ul>
   <li class="name">Peter</li>
   <li class="age">19</li>
</ul>
<h5>something else</h5>
<ul>
   <li class="name">Ali</li>
   <li class="age">62</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我想选择这个部分:

<h5>specific text</h5>
<ul>
   <li class="name">Peter</li>
   <li class="age">19</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

逻辑是<h5>标签的内容.我想要那个specific text.实际上,预期结果是该名称和该年龄的数组.有点像:var res = ['Peter', 19];.

但我的代码选择了所有这些<ul>:

$('ul').map(function (){
   var res = [$(this).find('li.name').text(), $(this).find('li.age').text()];
});
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

Car*_*sen 8

您可以使用它:contains()来查找H5包含所需特定字符串的内容.然后.next()用来得到ul与之相关的h5

$("h5:contains('specific text')").next('ul').map(function (){
   var res = [$(this).find('li.name').text(), $(this).find('li.age').text()];
   console.log(res)
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h5>something</h5>
<ul>
   <li class="name">John</li>
   <li class="age">21</li>
</ul>
<h5>specific text</h5>
<ul>
   <li class="name">Peter</li>
   <li class="age">19</li>
</ul>
<h5>something else</h5>
<ul>
   <li class="name">Ali</li>
   <li class="age">62</li>
</ul>
Run Code Online (Sandbox Code Playgroud)