jQuery从多个元素中剥离类和样式

时间:2016-11-26 02:56:15

标签: jquery

是否可以做这样的事情:

<div id="temp">
  <p class="one two">text</p>
  <div class="two">text</div>
  <a class="three" style="color:#ccc">Text</a>

  <p class="one">text</p>
  <div class="two">text</div>
  <a class="three" style="color:#ccc">Text</a>
</div>

基本上,我需要扫描“temp”元素并从每个子元素中删除某些类。

我尝试过类似的事情:

$('#temp *[class="one two"]').removeAttr('class');

但它不适合我。

2 个答案:

答案 0 :(得分:1)

我认为您需要单独处理.one.two,以便彻底根除它们。

  $('#temp .one').removeAttr('class');
  $('#temp .two').removeAttr('class');

此代码段中有三个按钮:

  1. 使用$('#temp .one.two')选择器
  2. 使用$('#temp .one')$('#temp .two')选择器
  3. 测试是否遗留任何内容。
  4. 单击按钮#1或#2后,单击#3。在控制台中查看结果后,重新启动Snippet,然后继续进行另一次测试。

    &#13;
    &#13;
    $('#btn1').on('click', function() {
      $('#temp .one.two').removeAttr('class');
    });
    
    $('#btn2').on('click', function() {
      $('#temp .one').removeAttr('class');
      $('#temp .two').removeAttr('class');
    });
    
    $('#btn3').on('click', function() {
      console.log($('.two').length);
      console.log($('.one').length);
    });
    &#13;
    .one { border: 2px dashed red; }
    .two { background: red; }
    .three { border: 2px dotted black; }
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div id="temp">
      <p class="one two">text</p>
      <div class="two">text</div>
      <a class="three" style="color:#ccc">Text</a>
    
      <p class="one">text</p>
      <div class="two">text</div>
      <a class="three" style="color:#ccc">Text</a>
    </div>
    <button id='btn1'>('#temp .one.two')</button>
    <button id='btn2'>('#temp .one')('#temp .two')</button>
    <button id='btn3'>Check</button>
    &#13;
    &#13;
    &#13;

答案 1 :(得分:0)

[class="one two"]会匹配那些与词组one two完全匹配的词组(而不是two oneone twoone something two,...):< / p>

$('#temp .one.two').removeAttr('class');