web-dev-qa-db-ja.com

[object HTMLDivElement](Prototype.js)の代わりに要素IDを返す方法

これは簡単なことですが、頭を包むことはできません。現在、次のコードは「[object HTMLDivElement]、[objectHTMLDivElement]」を返します。「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>
11
Dave

私は同じ問題を抱えていました、簡単な解決策があります:

VarElementが[HTMLDivElement](または他のDOMオブジェクト)を含むオブジェクトである場合は、単に「.id」を追加します。

例えば.

varElement.id 
21
Konrad

特にこれのためにプロトタイプに最適化があります:

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

私があなたの質問を正しく読んだ場合、コンマで区切られたIDの文字列ではなく、divIDのリストが必要です。

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

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

collectmapの別名であり、「セレクター」関数をそれぞれに適用することで、コレクションのあるタイプの要素を別のタイプに変換できます。

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

呼び出しは、名前で関数を呼び出します。識別機能はIDを提供します。配列で呼び出されると、IDの配列が返されます。結合は、それらをコンマを挟んだ文字列に変換します。

1
Paulo