虽然标题看起来很简单,但我想做的事情似乎比它看起来要多一点。
我所拥有的是一个搜索框,用于在我的网站上搜索用户,向其发送消息。它返回一个用户列表,然后单击要向其发送消息的用户。点击所述用户后,我将用户附加到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
元素中的所有文本。
答案 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”