如何从元素中获取html(),排除另一个元素?

时间:2012-02-04 22:56:40

标签: jquery

对不起真正的愚蠢问题。但它无论如何都无效。

<html>
<head>
<script src='js/jquery.js' type='text/javascript'></script>
<script type='text/javascript'>
  $(document).ready(function() {
    var htmlcontent = $('.content').not('.dontgrab').html();
    alert(htmlcontent); // returns EVERYTHING
  });
</script>
</head>
<body>
<div class='content'>
  BEFORE
  <div class='dontgrab'>DON'T GRAB</div>
  AFTER
</div>
</body>
</html>

尝试$(“。content *:not('。dontgrab')”)。html(); //返回NULL

请帮忙。

感谢。

2 个答案:

答案 0 :(得分:12)

这应该这样做:

var clone = $('div.content').clone();
clone.find('.dontgrab').remove();

var html = clone.html();

答案 1 :(得分:-1)

我认为你正在尝试:

var htmlcontent = $('.content').remove(".dontgrab").html();

如果情况如下,你可以使用.not():

var htmlcontent = $('div').not(".dontgrab").html();

<body>
<div class="content">
  BEFORE  

  AFTER
</div>
<div class="content dontgrab">DON'T GRAB</div>
</body> 

我不认为你可以使用.not选择元素儿童。我希望它有所帮助