请帮我解决这个问题:
我有这个:
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>';
答案 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();