0

这让我发疯。我正在尝试在 jQuery 中按 ID 选择一个 DOM 元素并将其删除。尽管我尽了最大的努力,jQuery 仍然给我 Uncaught Error: Syntax error, unrecognized expression: #li-/media/photos/KObtu.jpg

但是这个 id 确实存在于我的 DOM 中。所以我决定从图片中删除 jQuery 并使用普通的 ol' 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>

非常感谢你。

4

3 回答 3

5

文档中:

如果您希望使用任何元字符(例如!"#$%&'()*+,./:;<=>?@[\]^`{|}~)作为名称的文字部分,则必须使用两个反斜杠转义该字符:\\.

/是一个元字符,所以你必须转义它。

于 2012-09-23T19:39:12.117 回答
2

您的 LI id 使用连字符(破折号),但您的 jquery 选择器使用下划线

编辑:或者,你可以使用类似的东西:

$(this).parents("li").remove();
于 2012-09-23T19:15:57.187 回答
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”时,我遇到了一些问题

于 2012-09-23T19:54:32.130 回答