是否可以使用jQuery.not()
链式 with jQuery.html()
?
winner.not('a').html()
jQuery 对象/包装集在哪里winner
,我正在尝试返回已删除锚点的 HTML。
.html()
将返回 innerHTML - 其中将包含任何 A 标记,但您可以执行以下操作:
// clone the matched div:
var copy = winner.clone();
// remove all A tags from the DOM
copy.find("a").remove();
// get the html.
var noanchors = copy.html();
另外 - 如果你想在 A 中获取文本 - 但不是 A 本身 - 你可以使用:
// for each A tag
copy.find("a").each(function() {
//insert the text within ourselves to the document directly before us.
$(this).before($(this).text());
// then delete ourselves
$(this).remove();
});
虽然如果其中有任何其他标签,这实际上可能会有点混乱<a>
- 它应该说明这个想法。
这是可能的,但这不会给你你期望的结果。not('a')
将从您的集合中过滤a
标签,winner
但html()
会返回集合中第一个项目的值。
所以如果你winner
有[div#i1 div#i2 a div#i3 a]
,not('a')
将把这个设置减少到[div#i1 div#i2 div#i3]
并html()
返回 HTML 内容div#i1
。
如果您想从 HTML 中删除锚点,我认为您应该首先获取 is using.html()
方法,然后使用一些正则表达式对返回的值进行替换,以去除锚点。
或者,您可以使用以下内容:
var noanchors = '';
winner.not('a').each(function() { noanchors = noanchors + $(this).html(); )
获取非 a 元素的 html 的连接。但是,这可能会遗漏各种标签封闭项目之间的任何顶级文本。