我的页面在<div>
元素上有一堆ID - xx1, xx2, xx3, xx4
。
我还有一个数组idIndex = [xx1, xx2, xx3, xx4]
,它用于使用jQuery构造一个id标记,如下所示:
$("#" + idIndex[2]).text("New text here");
不幸的是,这不起作用。 Javascript取消引用页面中的实际ID而不是构造标记,并告诉我idIndex[2]
实际上是[object HTMLDivElement]
,因此jquery命令不起作用。
如何建立id标签的名称?
答案 0 :(得分:3)
如果您的ID为xx1
的div,则会有一个名为xx1
的全局变量,这是有问题的元素。
当您编写idIndex = [xx1]
时,您正在构建一个DIV元素数组。如果要构建字符串 ID的数组,则需要idIndex = ["xx1"]
等。引号很重要。
那就是说,你已经拥有一系列元素。不是通过ID从DOM中重新选择元素,而是将元素本身包装在jQuery对象中:
var $el = $(idIndex[2]);
作为解释,这里是ID为xx1
的单个div。您可以看到有一个xx1
变量,并将其包装在$()
中可以正常工作:
console.log(xx1);
$(xx1).text("Test 123")
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="xx1"></div>
答案 1 :(得分:1)
尝试使用$(idIndex[2]).text("text");
答案 2 :(得分:1)
以下是工作代码:
JS:
<script>
$(document).ready(function(){
var idIndex = ["xx1", "xx2", "xx3", "xx4"];
$("#" + idIndex[2]).text("New text here");
});
</script>
HTML:
<div id="xx1"></div>
<div id="xx2"></div>
<div id="xx3"></div>
<div id="xx4"></div>