0

在我的应用程序中,当用户单击按钮时,浏览器会创建新对象。例如:

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

4

2 回答 2

2

如果您ellipse使用其 ID 选择元素,请确保使用有效值正确设置它。

使用 CSS(因此也使用 jQuery),您将使用#obj0选择具有 ID 的元素obj0,但您没有这样的元素,因为您拥有的元素是 ID 定义为 的元素#obj0,这是一个无效值。

要解决您的问题,请替换以下内容:

$("#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")

于 2013-08-21T11:00:20.983 回答
0

如果您正在使用HTML5

id="#obj0" is valid ,

那么你必须选择喜欢$("#\#obj0")

如果你不使用HTML5你应该obj0而不是'#obj0'

于 2013-08-21T11:13:21.270 回答