2013-08-21 50 views
0

在我的應用中,當用戶點擊按鈕時,瀏覽器會創建新的對象。例如:jQuery沒有看到新創建的對象。如何刷新DOM對象列表?

$("#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都不存在。

+7

http://stackoverflow.com/ question/70579/what-are-valid-values-for-the-id-attribute-in-html re從編號 – hex4

回答

2

如果你使用它的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),但在這種情況下,你w生病必須使用$("#\#obj0")而不是$("#obj0")來選擇它。

0

如果您正在使用HTML5

id="#obj0" is valid , 

,那麼你必須選擇像$("#\#obj0")

,如果你不使用你應該的HTML5obj0代替'#obj0'

+0

移動#感謝提醒,我將它添加到我自己的答案,以及一個鏈接到W3參考。乾杯! – Community