簡體   English   中英

jQuery沒有看到新創建的對象。 如何刷新DOM對象列表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM