我知道这很简单,但我无法绕过它。目前以下代码返回“[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>
答案 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将它们变成一个逗号在中间的字符串。