如何返回元素ID而不是[object HTMLDivElement](Prototype.js)

时间:2009-02-23 00:42:18

标签: javascript html dom prototypejs

我知道这很简单,但我无法绕过它。目前以下代码返回“[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>

4 个答案:

答案 0 :(得分:21)

我遇到了同样的问题,有一个简单的解决方案:

如果varElement是包含[HTMLDivElement](或其他DOM对象)的对象,只需添加'.id'

e.g。

varElement.id 

答案 1 :(得分:4)

原型专门针对此进行了优化:

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

如果我正确地阅读了你的问题,你需要一个div ID列表,而不是用逗号分隔的一串id。

答案 2 :(得分:2)

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

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

collect map 的另一个名称,它允许您通过对每个元素应用“selector”函数将一种类型的集合转换为另一种类型。< / p>

答案 3 :(得分:1)

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

调用将按名称调用函数。识别功能将提供id。在数组上调用时,它将返回其数组的id。 Join将它们变成一个逗号在中间的字符串。