javascript - 如何在jquery中搜索属性值的一部分?

标签 javascript jquery html split match

如何从所有数据属性值中获取一部分,对它们进行计数更改元素的背景颜色。我已经在 jsfiddle 上树立了榜样

例如:

该属性称为数据搜索。该值设置为 search_12(该数字用于 ID 元素)。

单击按钮时,我试图在正文中的任何位置查找search_(我希望定位正文中的所有内容,而不是特定部分)。 因此,有很多元素具有相同的数据属性,但不同之处在于,值末尾有一个数字,该数字出于识别目的而变化。

如果可能的话,我想使用 split 方法,因为它比 match() 或 RegExp() 更快。否则,请随意回答。

这就是我所拥有的。

JS

$( "button" ).on( "click", function() {

      var search = $( "body" ).children( "*" ).attr( "data-search" )

      var results = search.split( 'search_' ).length - 1;  

      $('.count-results').text( results )

});

HTML

<div class="section">
   <button type="button">Search</button>
</div>

<div class="section">
   <section>
      <div>
         <h1>Please <span class="span" data-search="search_21">find me</span></h1>
         <p class="para">Search for data</p>
      </div>
   </section>

   <article> 
      <section>
         <div>
            <h1>Find the next element's data</h1>
            <p data-search="search_400" class="para">
            Find me too
            </p>
         </div>
      </section>
   </article>

   <details open>
      <address>
        Written by <a href="#" data-search="search_1">Jon Doe</a>.<br> 
        Visit us at:<br>
        Example.com<br>
        Box <span class="number" data-search="search_anything">564</span>, 
        Disneyland<br>
        USA
     </address>
   </details>
</div>

<div class="section">
   <p>The string of <b>search_</b> was found:</p>
   <div>
      <span class="count-results"></span> times
   </div> 
</div>

任何帮助将不胜感激!

最佳答案

您可以使用Attribute Starts With Selector :

$( "button" ).on( "click", function() {
  var results = $('[data-search^="search_"]');
  
  results.css('background', 'red');      
  
  $('.count-results').text(results.length);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="section">
   <button type="button">Search</button>
</div>

<div class="section">
   <section>
      <div>
         <h1>Please <span class="span" data-search="search_21">find me</span></h1>
         <p class="para">Search for data</p>
      </div>
   </section>

   <article> 
      <section>
         <div>
            <h1>Find the next element's data</h1>
            <p data-search="search_400" class="para">
            Find me too
            </p>
         </div>
      </section>
   </article>

   <details open>
      <address>
        Written by <a href="#" data-search="search_1">Jon Doe</a>.<br> 
        Visit us at:<br>
        Example.com<br>
        Box <span class="number" data-search="search_anything">564</span>, 
        Disneyland<br>
        USA
     </address>
   </details>
</div>

<div class="section">
   <p>The string of <b>search_</b> was found:</p>
   <div>
      <span class="count-results"></span> times
   </div> 
</div>

关于javascript - 如何在jquery中搜索属性值的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48388527/

相关文章:

javascript - 使用 jQuery 删除具有相同类名的多个表

html - 当行内显示不起作用时,行内显示 <div>

html - 选择选项表单后自动填充文本表单值

javascript - 使用映射或任何其他方法转换数组 - javascript

javascript - 正在接收数据但无法显示

javascript - Jquery .each() - 返回值未定义

javascript - 基本jQuery AJAX性能查询

javascript - 从变量中删除 char 时出错

涉及使用正则表达式的 Javascript 函数

html - 标签定位不正确?