Javascript 如果特定html元素包含某个值,如何将类添加到这些元素中

Javascript 如果特定html元素包含某个值,如何将类添加到这些元素中,javascript,jquery,dom,select,jquery-selectors,Javascript,Jquery,Dom,Select,Jquery Selectors,例如,我有以下html: <div id="stuff"> <span>1</span><span>2</span><span>3</span> </div> 我需要以这种方式选择一些: $('#stuff').find('<span>1</span><span>2</span>').addClass('2'); 应将html转换为以下内容:

例如,我有以下html:

<div id="stuff">
<span>1</span><span>2</span><span>3</span>
</div>
我需要以这种方式选择一些:

$('#stuff').find('<span>1</span><span>2</span>').addClass('2');
应将html转换为以下内容:

   <div id="stuff">
    <span class="2">1</span><span class="2">2</span><span>3</span>
    </div>
但是,上述方法不起作用。有人知道如何使用jQuery通过查找html直接从DOM中选择内容吗

此外,必须按顺序选择跨度,因此如果我有:

<div id="stuff">
<span>2</span><span>3</span><span>1</span>
</div>
使用上面的JS,它不会做任何事情。

使用$'stuff span:not:contains3'。addClass'2'

您可以使用:contains伪类:

$('#stuff span:contains(1), #stuff span:contains(2)').addClass('2');

我不完全清楚您的选择条件是什么,但是您可以使用jqueryfilter方法和一个函数来选择跨度

例如,从文档中:

$('li').filter(function(index) {
   return $('strong', this).length == 1;
}).css('background-color', 'red');

您需要检查$this.text===是否正确,如果要查找各种内容,请执行以下操作:

<html>
   <head>
          <script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
          <script type="text/javascript">
          $(function(){
                 var contains = [ 1 , 2 , 6 , 7 , 8 ] ;
                 $.map ( contains, function ( i ) {
                        $ ( '#stuff span:contains("'+ i +'")' ).addClass ( '2' ) ;
                 } ) ;
          });
          </script>
   </head>
   <body>
          <div id="stuff">
                 <span>1</span>
                 <span>2</span>
                 <span>3</span>
                 <span>4</span>
                 <span>5</span>
                 <span>6</span>
                 <span>7</span>
                 <span>8</span>
          </div>
   </body>
输出:

<div id="stuff">
       <span class="2">1</span>
       <span class="2">2</span>
       <span>3</span>
       <span>4</span>
       <span>5</span>
       <span class="2">6</span>
       <span class="2">7</span>
       <span class="2">8</span>
</div>

这只是一个例子。我会有上百个跨度,里面有各种各样的东西。我知道我的问题是不寻常的,我已经使用jquery很多年了。然而,我想不出一个好的方法来实现这一点。更好地解释你想要什么。。选择数组中的所有元素,然后添加类2?不,只选择我要选择的元素,我要选择的元素必须按顺序排列。。。谢谢你的回复。你需要一些方法来区分你想要选择的跨度。那么,标准是什么呢?我们理解需要发生什么,但您是否总是希望选择1和2?很抱歉,有人删除了底部部分,其中包含一些关键信息。它现在回来了,所以你想通过HTML字符串匹配吗?是的,这正是我想要的