【问题标题】:DOM manipulation in html variablehtml变量中的DOM操作
【发布时间】:2013-06-04 13:48:08
【问题描述】:

我在变量名data 中有这个字符串,它有html标签和所有

<div class="cqr">
  <span class="ico-cqr2 icon-28 star1">quality</span>
  <span class="ico-cqr2 icon-28 star2">quality</span>
  <span class="ico-cqr2 icon-28 star3">quality</span>
  <span class="ico-cqr2 icon-28 star4">quality</span>
  <span class="ico-cqr2 icon-28 star5">quality</span>
</div>

我把这个字符串解析成html为

var tHTML = $.parseHTML(data, null, true);

现在我需要像从 span 中添加/删除某些类一样操作 DOM。我怎样才能做到这一点。

【问题讨论】:

  • 只是一个注释,但在你的情况下,你甚至不需要使用.parseHTML()$(data) 将达到相同的结果。但是请注意,这仅适用于您的字符串以 html 标记开头。
  • 不,它以 div 标签开头
  • 你误解了,一个 html 标签,就像一个有效的 html 标签,比如&lt;div&gt;,而不是一个文字 &lt;html&gt; 标签。

标签: jquery html dom dom-manipulation


【解决方案1】:
$(tHTML).find('span').addClass('someClass');

正如 cmets 中所指出的,您不需要使用 $.parseHTML,只需将 data 放入 jQuery 包装器中即可:

$(data).find('span').addClass('someClass');

【讨论】:

    【解决方案2】:

    在提出以下问题之前,请多看看:

    a) 之前被问过

    b) 存在于 jquery API 上:EDIT: All class functions

    例子:

    $('span').removeClass('ico-cqr2, star1');
    

    【讨论】:

      【解决方案3】:

      给star1添加类

      $(tHTML).find('star1').addClass('someClass');
      

      从star1中移除类

      $(tHTML).find('star1').removeClass('someClass');
      

      您可以通过 'id' 或 'class' 进行操作 当您将字符串放在 $() 之间时,系统已经像 jquery 对象一样处理

      如何使用 addClass http://api.jquery.com/addClass/ 如何使用查找 http://api.jquery.com/find/

      【讨论】:

        猜你喜欢
        • 2011-09-12
        • 1970-01-01
        • 2012-04-01
        • 2017-02-21
        • 1970-01-01
        • 2011-06-28
        • 1970-01-01
        • 2016-09-05
        • 1970-01-01
        相关资源
        最近更新 更多