使用jquery从变量中删除DOM元素

时间:2012-08-27 09:23:04

标签: jquery html dom

请帮我解决这个问题:

我有这个:

var text='<li id="job1">Job 1</li>'+
         '<li id="job2">Job 2</li>'+
         '<li id="job3">Job 3</li>';

我想删除一个元素,如下所示:

$("#job2",$(text)).remove();

这不起作用。有办法怎么做?感谢。

修改 我想将结果保存回文本:

 text='<li id="job1">Job 1</li><li id="job3">Job 3</li>';

3 个答案:

答案 0 :(得分:3)

你的var text只是一个持有字符串的变量

<li id="job1">Job 1</li><li id="job2">Job 2</li><li id="job3">Job 3</li>

字符串不是对象,因此您无法使用.remove()

<小时/> 但是一旦你这样做了:

$('#someElement').append(text);

比你可以做的那样:

$('#job2').remove();

并使用以下方法检索新字符串:

text = $('#someElement').html(); // '<li id="job1">Job 1</li><li id="job3">Job 3</li>'

答案 1 :(得分:2)

试试这个......

*更新 FIDDLE 我的第一个代码版本$(text).find("#job2").remove();在jsfiddle中没有用,但是当我在代码中添加<ul></ul>时,它就像魅力一样。我不知道为什么在没有ul的情况下没有使用第一个实例而且我没有看到任何li没有ul的情况所以请尝试这样。

var text='<ul><li id="job1">Job 1</li>'+
         '<li id="job2">Job 2</li>'+
         '<li id="job3">Job 3</li></ul>';

$text = $(text);
// console.log($text);
$text.find("li#job2").remove();
// console.log($text.find("li#job2"));
$('div').append($text);​

答案 2 :(得分:2)

如果你想从文本中删除'job2'

$(text).find("#job2").remove();
相关问题