這讓我瘋狂。我試圖通過jQuery中的ID選擇DOM元素並將其刪除。儘管我盡了最大的努力,但jQuery總是給我一個未捕獲的錯誤:語法錯誤,無法識別的表達式:#li-/media/photos/KObtu.jpggetElementByID工作,但jQuery的選擇不是
但是,這個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>
非常感謝你提前。
你爲何用如此怪異的ID? – Oriol
你試過逃避'/'嗎? – nandu
@ user1556487:作爲附註,ID和名稱標記必須以字母([A-Za-z])開頭,後面可以跟隨任意數量的字母,數字([0-9]),連字符( 「 - 」),下劃線(「_」),冒號(「:」)和句點(「。」)。 type-id只要注意'.',因爲jQuery將其視爲一種特殊情況。 – Nope