Подтвердить что ты не робот

Как вернуть Element ID вместо [object HTMLDivElement] (Prototype.js)

Я знаю, что это просто, но я не могу обернуть вокруг себя. В настоящее время следующий код возвращает "[object HTMLDivElement], [object HTMLDivElement]" Мне бы хотелось, чтобы он возвращал div1, div2 ". Есть предположения? Спасибо, ребята.

<HTML>
<HEAD>
<script type="text/javascript" src="path_to/prototype.js"></script>
<script>
function linkClick ()
{
    alert($$('div.basic'));
}
</script>
</HEAD>
<BODY>
   <div id="div1" class="basic" onclick="linkClick();"></div>
   <div id="div2" class="basic" onclick="linkClick();"></div>
</BODY>
</HTML>
4b9b3361

Ответ 1

У меня была та же проблема, есть простое решение:

Если varElement - это ваш объект, содержащий [HTMLDivElement] (или другой объект DOM), просто добавьте '.id'

например.

varElement.id 

Ответ 2

Оптимизация в прототипе специально для этого:

$$('div.basic').pluck('id')

Если я правильно прочитал ваш вопрос, вам нужен список идентификаторов div, а не строка идентификаторов, разделенных запятой.

Ответ 3

var ids = $$('div.basic').collect(function(el) { return el.id; }); //array of ids

alert(ids.join(','));

collect - это другое имя для карты, которое позволяет вам преобразовывать элементы в один тип коллекции в другой тип, применяя к ним функцию "селектор".

Ответ 4

alert($$('div.basic').invoke('identify').join(',');

Вызов вызовет функцию по имени. Функция идентификации предоставит идентификатор. Когда вызывается в массиве, он возвращает массив своих идентификаторов. Join превращает их в строку с запятыми между ними.