【发布时间】:2011-02-18 19:02:51
【问题描述】:
当我试图选择一个元素,然后从包装的集合中删除某些后代元素时,我对使用哪个 jQuery 方法和/或选择器有点困惑。
例如,给定以下 HTML:
<div id="article">
<div id="inset">
<ul>
<li>This is bullet point #1.</li>
<li>This is bullet point #2.</li>
<li>This is bullet point #3.</li>
</ul>
</div>
<p>This is the first paragraph of the article</p>
<p>This is the second paragraph of the article</p>
<p>This is the third paragraph of the article</p>
</div>
我要选择文章:
var $article = $('#article');
然后从包装集中删除<div id="inset"></div> 及其后代。我尝试了以下方法:
var $article = $('#article').not('#inset');
但这不起作用,回想起来,我想我明白为什么了。我也尝试使用remove() 失败。
这样做的正确方法是什么?
最终,我需要以可以定义配置数组的方式进行设置,例如:
var selectors = [
{
select: '#article',
exclude: ['#inset']
}
];
其中select 定义包含文本内容的单个元素,exclude 是一个可选数组,它定义一个或多个选择器以忽略其中的文本内容。
鉴于最终包装集已移除排除元素,我希望能够调用 jQuery 的 text() 方法以得到以下文本:
这是文章的第一段。
这是文章的第二段。
这是文章的第三段。
配置数组不需要完全像那样工作,但它应该提供大致等效的配置潜力。
感谢您提供的任何帮助!
【问题讨论】:
-
抱歉有任何歧义 - 我想选择#article,然后删除#inset 中的任何内容。最终,我想从#article 中提取除#inset 中的所有文本。
标签: javascript jquery dom jquery-selectors css-selectors