jQuery选择除了一些表div之外的div之间的所有内容

时间:2013-03-26 22:30:16

标签: jquery

我想在我的页面的两个Divs之间获取html,除了包含jqplot的隐藏值以及此Div的大jqplot的表格。我似乎应该使用jQuery :not()选择器来排除这两个元素。但是,我的代码失败了。那么有人能给我一些建议吗?这是一个demo,下面是我的代码的基本概念。我需要的唯一内容是内容,直到第一个table谢谢!

HTML

<div class="articles">
    <h2 class="model_header">Exponential Model Output</h2>

    <table align="center">
        <!--end 04uberoutput_start-->
    </table>

    <table width="550" border="1">  
    </table>  
####I need nothing below#####
    <p>&nbsp;</p>

    <table width="400" border="0" style="display: none">
    </table>

    <div id="chart1" style="margin-top: 20px; margin-left: 20px; width: 650px; height: 400px; position: relative;" class="jqplot-target">
    </div>

</div>

JS:

  var jq_html = $("div.articles:not(table&div)").html();

3 个答案:

答案 0 :(得分:2)

var jq_html = $("div.articles").children(':lt(3)');

也许只针对基于零的索引低于3的所有孩子,得到:

  • [0] H2
  • [1]第一张表
  • [2]第二张表

修改

有点晚了,没注意到评论!

var jq_html = $('<div />').append($("div.articles").children(':lt(3)').clone()).html();

答案 1 :(得分:1)

首先,您需要一个outerHtml()函数(请参阅Get selected element's outer HTML)。出于演示目的,我使用内置的:

var jq = $("div.articles").children(':not(div#chart1,table:hidden)');
var jq_html = "";
jq.each(function() {
  jq_html += $(this)[0].outerHTML + "\n";
});

答案 2 :(得分:1)

来自jquery.api的

在HTML文档中,.html()可用于获取任何元素的内容。如果选择器表达式与多个元素匹配,则只返回第一个匹配的HTML内容。

http://api.jquery.com/html/

所以你只能使用.html()来检索匹配的第一个元素。我会看看能不能想到什么。