javascript - getElementByID 工作,但 jQuery 的选择器不工作

标签 javascript jquery

这让我发疯。我试图在 jQuery 中通过 ID 选择一个 DOM 元素并将其删除。尽管我尽了最大努力,jQuery 仍然给我带来 Uncaught Error :语法错误,无法识别的表达式:#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>

提前非常感谢您。

最佳答案

来自documentation :

If you wish to use any of the meta-characters ( such as !"#$%&'()*+,./:;<=>?@[\]^`{|}~ ) as a literal part of a name, you must escape the character with two backslashes: \\.

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

关于javascript - getElementByID 工作,但 jQuery 的选择器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12555403/

相关文章:

javascript - Graphql 创建 2 个具有 1 个突变的条目

javascript - 如何在 javascript 中取消选择/取消焦点文本字段

jquery - 响应式 CSS 边距

jquery - jscrollpane 不可见

jquery - 用 jQuery 替换 dt 元素 (phpBB)

javascript - 同时进行多个 AJAX 调用和连续进行多个 AJAX 调用有区别吗?

java - vertx中eventBus的使用

javascript - 将数据操作添加到包含类的所有img

javascript - 尝试从 Angular 将数据发送到 mongoDB

jquery - 使用 jquery 和 css 的移动菜单按钮和主菜单显示