HTML id标记与数组成员冲突

时间:2015-07-17 00:51:56

标签: javascript jquery

我的页面在<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标签的名称?

3 个答案:

答案 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>