这让我疯了。我试图在jQuery中通过ID选择一个DOM元素并将其删除。尽管我付出了最大的努力,jQuery仍然给我一个未捕获的错误:语法错误,无法识别的表达式:#li- / media / photos / KObtu.jpg
但是这个id肯定存在于我的DOM中。所以我决定从图片中删除jQuery并使用普通的'javascript。这很好用,但我不明白为什么。
function DeletePhoto() {
//Remove a photo from the server when the delete button is clicked
$("#personal-photo-list .delete").click( function() {
var photoId = $(this).attr("id").split("-")[1];
$.post("profile/DeletePhoto/", { "photo": photoId }, function(jsonObject){
$("#li-" + photoId).remove(); //What I actually want to call. Does not work
$("#li-/media/photos/KObtu.jpg").remove(); //I thought maybe using a variable was throwing things off. This does not work either
document.getElementById("li-/media/photos/KObtu.jpg").innerHTML="dsfsdfsdfsdf"; //The exact same id as the statements above. This command successfully replaces the text in the <li> tag
});
});
}
如果有人好奇,这里是HTML的片段:
<li id="li-/media/photos/KObtu.jpg">
<img src="/media/photos/KObtu.jpg">
<p> Uploaded on Sept. 23, 2012 | <a href="javascript:void(0)" id="a-/media/photos/KObtu.jpg" class="delete"> Delete </a> </p>
</li>
提前非常感谢你。
答案 0 :(得分:5)
如果您希望使用任何元字符(例如
!"#$%&'()*+,./:;<=>?@[\]^`{|}~
)作为名称的文字部分,则必须使用两个反斜杠转义字符:\\
。
/
是一个元字符,所以你必须逃避它。
答案 1 :(得分:2)
您的LI id使用连字符(破折号),但您的jquery选择器使用下划线
编辑:或者,您可以使用以下内容:
$(this).parents("li").remove();
答案 2 :(得分:0)
尝试使用$(“[id ='personal-photo-list']。delete”)或$(“[id ='li- / media / photos / KObtu.jpg']”)。 工作jsFiddle http://jsfiddle.net/42Vyq/1/
jQuery API: http://api.jquery.com/attribute-equals-selector/
当天才开发人员使用类名'user.email'
时,我遇到了一些问题