HTML id标签与数组成员冲突

HTML id tag conflict with array member

本文关键字:组成员 冲突 数组 id 标签 HTML      更新时间:2023-09-26

我的页面上有一堆id的<div>元素- 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标签的名称?

如果你有一个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>

尝试使用$(idIndex[2]).text("text");

工作代码:

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>