从 jQuery 集合中删除注释和文本节点
Removing comments and text nodes from jQuery collection
$html = $("<!-- comment --> <p>text</p>");
创建一个像这样的jQuery集合
$( [the comment], [text node], p )
如何仅访问该段落? .find("p"( 返回一个空集合
而且,对于加分,
$html = $("<p>text</p>");
创建一个像这样的jQuery集合
$( p )
有没有一种故障安全的方法可以获取 p,并且只有 p,无论评论是否存在都有效?
最简单的方法是使用 filter
和通用选择器 *
,它匹配所有元素。
$html = $("<!-- comment --> <p>text</p>").filter('*');
var p = $html.filter(function() { return this.nodeType === 1; });
jsFiddle。
试试这个演示。也许这不是你要使用它的方式,但你明白了。
<div class="text">
<!-- comment -->
<p>text</p>
</div>
var html = $('.text').html();
html = $.trim(html.replace(/<!--(.*?)-->/ig, ''));
alert(html);
一种方法是像$html = $("<!-- comment --> <p>text</p>");
一样按索引获取,您可以使用$($html[2])
获取p标签。
或
$html = $("<!-- comment --> <p>text</p>");
$target = new Object();
for(key in $html){
if(typeof $html[key] === 'object' && $html[key].localName === 'p')
$target = $html[key];
}
相关文章:
- Javascript,将文本添加到具有现有文本节点的元素中
- 拆分文本节点
- 使用TreeWalker检索非Javascript文本节点
- jquery在元素中查找文本节点,并使用标记进行连接和包装
- JavaScript 文本节点属性
- 获取文本节点的宽度
- 如何将由
分隔的文本节点与它们自己的标记包装起来
- 如何返回jQuery对象中的文本节点
- 包装和打开jquery后合并文本节点
- 有没有一种方法可以在javascript中为文本节点添加属性
- 使用文本节点打印段落
- 计算文本节点中的字母数
- 正则表达式:仅在标记中匹配文本节点
- "“错误”;导致故障的文本节点
- 正在创建文本节点
- jQuery,如何测试一个变量是一个文本节点,不包含任何标记
- 使用 casperjs 抓取文本节点的最快方法
- 如何在文本节点中保留空格
- 如何获取文档片段中的所有文本节点
- 选择“相邻同级”而不干预文本节点