0

我想Divs为我的页面获取两个之间的 html,除了一个包含隐藏值的表jqplot和一个大Div的 this jqplot。看来我应该使用 jQuery:not()选择器来排除这两个元素。但是,我的代码失败了。那么有人可以给我一些建议吗?这是一个演示,下面是我的代码的基本思想。我唯一需要的是内容,直到第一次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();
4

3 回答 3

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();
于 2013-03-26T22:37:03.460 回答
1

首先,您需要一个outerHtml()函数(请参阅获取选定元素的外部 HTML)。出于演示目的,我使用内置的:

var jq = $("div.articles").children(':not(div#chart1,table:hidden)');
var jq_html = "";
jq.each(function() {
  jq_html += $(this)[0].outerHTML + "\n";
});
于 2013-03-26T22:43:57.013 回答
1

来自 jquery.api:

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

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

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

于 2013-03-26T23:13:58.217 回答