0

是否可以使用jQuery.not()链式 with jQuery.html()

winner.not('a').html()

jQuery 对象/包装集在哪里winner,我正在尝试返回已删除锚点的 HTML。

4

3 回答 3

5

.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>- 它应该说明这个想法。

于 2009-08-12T06:47:43.803 回答
0

这是可能的,但这不会给你你期望的结果。not('a')将从您的集合中过滤a标签,winnerhtml()会返回集合中第一个项目的值。

所以如果你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()方法,然后使用一些正则表达式对返回的值进行替换,以去除锚点。

于 2009-08-12T06:33:01.680 回答
0

或者,您可以使用以下内容:

var noanchors = '';
winner.not('a').each(function() { noanchors = noanchors + $(this).html(); )

获取非 a 元素的 html 的连接。但是,这可能会遗漏各种标签封闭项目之间的任何顶级文本。

于 2009-08-12T06:40:14.753 回答