点击某些内容后,从搜索栏中删除文字

时间:2012-12-06 23:47:43

标签: jquery text replace

虽然标题看起来很简单,但我想做的事情似乎比它看起来要多一点。

我所拥有的是一个搜索框,用于在我的网站上搜索用户,向其发送消息。它返回一个用户列表,然后单击要向其发送消息的用户。点击所述用户后,我将用户附加到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元素中的所有文本。

2 个答案:

答案 0 :(得分:1)

$('div.search').find(':not(li):contains(' + text + ')').remove();

答案 1 :(得分:0)

如果这是你正在寻找的,那就不知道了:

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

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