【问题标题】:jquery: how to get html excluding a div in it?jquery:如何获取不包含 div 的 html?
【发布时间】:2012-02-21 02:23:57
【问题描述】:

这是我的html

loaded-data  = "
<div id='content'>
<div id='1'></div>
<div id='2'></div>
<div id='3'></div>
</div>"


var myHtml = $(data).find('#content').html(); // i get all 3 divs

如果我想排除 div 3 怎么办?

【问题讨论】:

  • 现在我觉得更好,我的问题可能是:我怎样才能只选择前 2 个 div html?
  • 您问题中的代码不一致。要验证,loaded-data 是字符串吗? data 变量是否引用了相同的字符串?
  • 另外,您能否澄清一下您的意图是获取一个排除最后一个 div 的 HTML 字符串?你的意图不明确。

标签: jquery jquery-selectors


【解决方案1】:

首先,我不知道以数字开头的 ID 是个好主意。这可能是我早期 VB6 编程时代的延续,但我总是将 id 设置为 item1 和 item2 之类的东西。话虽如此,如果您想选择前两个 div,请尝试

$('#content #item1, #content #item2')

【讨论】:

    【解决方案2】:

    很好的解决方案,当您不知道内部 div 的 id 时 - 将始终有效。如果需要,您还可以在 children 方法中指定类。

    $('#content').children('div').slice(0, 2);
    

    【讨论】:

      【解决方案3】:

      您的问题似乎暗示您正在谈论一个字符串。如果是这样,请通过 slice()(docs) 方法引用最后一个,从匹配集中选择您不想要的 children()(docs) 和 remove()(docs)。

      然后使用end()(docs)方法回到初始元素。

      示例: http://jsfiddle.net/vhsA5/

      var myHtml = $(data).children().slice(-1).remove().end().end().html();
      

      编辑:我会注意到,如果您发布的 HTML 字符串是较大 HTML 的一小部分,您可能需要在 @987654332 之前添加 .find('#content') @。

      【讨论】:

        【解决方案4】:

        也许? var myHtml = $(data).contents().find("#content").not("#3").html();

        【讨论】:

          猜你喜欢
          • 2011-08-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多