[英]jQuery doesn't see newly created object. How to refresh list of DOM objects?
在我的應用程序中,當用戶單擊按鈕時,瀏覽器會創建新對象。 例如:
$("#div1 svg").append("<ellipse id='#obj0' class='svgobjects'>");
有用。 它出現在Chrome開發工具中。 然后我想用一些數據設置橢圓的大小。
if (!$(ID).length > 0) {
console.log("Div doesn't exist");
} else {
console.log("I found it");
}
$(ID).attr("cx", data["startX"]).attr("cy", data["startY"]).attr("rx", this.rx).attr("ry", this.ry).attr("fill", data["color"]);
所有這些變量都可以。 所有這些都包含正確的數據。 但在控制台出現:“Div不存在”。
問題是:這個div在那里並且具有與“ID”變量(“#obj0”)相同的id。 但是盡管所有的jquery sais都不存在div。
如果您使用其ID選擇ellipse
元素,請確保使用有效值正確設置它。
使用CSS(因此也使用jQuery),您可以使用#obj0
來選擇ID為obj0
的元素,但是您沒有這樣的元素,因為您擁有的元素具有定義為#obj0
的ID,這是無效的值。
要解決您的問題,請替換以下內容:
$("#div1 svg").append("<ellipse id='#obj0' class='svgobjects'>");
有了這個:
$("#div1 svg").append("<ellipse id='obj0' class='svgobjects'>");
編輯:
在HTML5中,ID #obj0
實際上是有效的(請參閱http://www.w3.org/TR/html-markup/global-attributes.html ),但在這種情況下,您必須使用$("#\\#obj0")
而不是$("#obj0")
。
如果您使用的是HTML5
id="#obj0" is valid ,
然后你必須選擇像$("#\\#obj0")
如果你不使用HTML5
你應該obj0
而不是'#obj0'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.