我在应用程序中使用以下格式动态创建了元素:
< div id = "div{{var}}" > ... < / div>
其中var总是一个整数。
我在页面源代码中看到它正在按预期创建id,但JS选择器似乎没有这样识别它。当尝试使用jQuery访问这些项目时,我很难通过id选择它们。 尝试选择var = 1
的div时的示例 $('#div1')
未定义。
所以我想知道当它们包含角度变量时,是否存在通过id访问元素的特定方式。
答案 0 :(得分:0)
请确保在设置ID之前未执行jQuery代码。
如果在div获得“$("#div1")
”ID之前执行div1
,那么jQuery将返回一个类型为“object”而不是“is undefined”的对象。
您可以使用以下代码对此进行测试:
console.log("The type is: " + typeof($("#idOfSomethingThatDoesNotExist")));
结果:
The type is: object
答案 1 :(得分:0)
您不应该使用<div id="div{{var}}"> ... </div>
相反,您应该使用<div ng-attr-id="div{{var}}"> ... </div>
这可确保id
仅在评估<div>
后var
上设置"div{{var}}"
。即,它最初未设置为{{1}}(文字字符串)。
有关详细信息,请参阅https://docs.angularjs.org/guide/directive#-ngattr-attribute-bindings。