7

请帮我解决这个问题:

我有这个:

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>';
4

3 回答 3

3

您的 vartext只是一个包含字符串的变量

<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>'
于 2012-08-27T09:29:26.537 回答
2

试试这样...

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

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);​
于 2012-08-27T09:25:34.717 回答
2

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

$(text).find("#job2").remove();
于 2012-08-27T09:26:21.343 回答