1

虽然标题看起来简单明了,但我想做的却比看起来要多一点。

我拥有的是一个搜索框,用于在我的网站上搜索用户,向其发送消息。它返回一个用户列表,然后您单击要向其发送消息的用户。单击所述用户后,我将用户附加到一个li(顺便说一下,这是一个 contentEditable div),然后允许用户继续搜索其他用户。这一切都按我的意愿工作,我现在要做的是从搜索框中删除纯文本。

因此,如果有人键入“Rober”然后单击用户“Robert Smith”,它应该删除所有未包含在li元素中的纯文本。

我相信这会是这样说的:

$("div.search").clone().children().remove().end().text();

我在搜索时使用它来过滤li文本等。

在一个非工作示例中,我会说它应该是这样的:

var text = $("div.search").clone().children().remove().end().text();

$("div.search").find(text).notIn("li").remove();

编辑

与其搜索要删除的确切文本,不如仅重新删除所有未包含在li元素中的文本可能会更好、更容易。

4

2 回答 2

1
$('div.search').find(':not(li):contains(' + text + ')').remove();
于 2012-12-06T23:51:43.340 回答
0

不知道这是否是您正在寻找的,但是:

var d = $('<div>');
$('div.search').children().appendTo(d);
$('div.search').html('').append(d.children());

这将保留所有 html 元素并删除不在节点内的所有其他文本。你可以过滤孩子只保留“li”

于 2012-12-07T00:05:01.403 回答