我想在我的页面的两个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> </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();
答案 0 :(得分:2)
var jq_html = $("div.articles").children(':lt(3)');
也许只针对基于零的索引低于3的所有孩子,得到:
修改强>
有点晚了,没注意到评论!
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)
:
在HTML文档中,.html()可用于获取任何元素的内容。如果选择器表达式与多个元素匹配,则只返回第一个匹配的HTML内容。
所以你只能使用.html()来检索匹配的第一个元素。我会看看能不能想到什么。