2015-07-17 5 views
0

У моей страницы есть куча идентификаторов на <div> элементах - xx1, xx2, xx3, xx4.Идентификатор тега HTML-идентификатора с элементом массива

Я также массив, idIndex = [xx1, xx2, xx3, xx4], который используется для создания тега ID, используя JQuery, следующим образом:

$("#" + idIndex[2]).text("New text here");

К сожалению, это не работает. Javascript разыскивает фактический идентификатор на странице вместо создания тега и сообщает мне, что idIndex[2] на самом деле [object HTMLDivElement], так что команда jquery не работает.

Как создать имя тега id?

+0

'[объект HTMLDivElement]' * это * ваш DIV тег. Он работает нормально. – meagar

ответ

3

Если у вас есть div с идентификатором xx1, тогда существует глобальная переменная с именем xx1, которая является элементом, о котором идет речь.

Когда вы пишете idIndex = [xx1], вы создаете массив элементов DIV. Если вы хотите создать массив из строк ID, вам нужно idIndex = ["xx1"] и т. Д. Важные цитаты.

Сказали, что у вас уже есть массив элементов. Вместо того, чтобы повторно выбрать элемент из DOM по их идентификаторам, просто обернуть сам элемент в объекте JQuery:

var $el = $(idIndex[2]); 

В качестве объяснения, вот один DIV с идентификатором xx1. Вы можете видеть, что есть 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>

+0

Человек, я слишком долго смотрел на этот код. Спасибо, это самая глупая ошибка, которую я сделал за некоторое время. Я приму этот ответ за 7 минут. – Dirk

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>