これは簡単なことですが、頭を包むことはできません。現在、次のコードは「[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>
私は同じ問題を抱えていました、簡単な解決策があります:
VarElementが[HTMLDivElement](または他のDOMオブジェクト)を含むオブジェクトである場合は、単に「.id」を追加します。
例えば.
varElement.id
特にこれのためにプロトタイプに最適化があります:
$$('div.basic').pluck('id')
私があなたの質問を正しく読んだ場合、コンマで区切られたIDの文字列ではなく、divIDのリストが必要です。
var ids = $$('div.basic').collect(function(el) { return el.id; }); //array of ids
alert(ids.join(','));
collectはmapの別名であり、「セレクター」関数をそれぞれに適用することで、コレクションのあるタイプの要素を別のタイプに変換できます。
alert($$('div.basic').invoke('identify').join(',');
呼び出しは、名前で関数を呼び出します。識別機能はIDを提供します。配列で呼び出されると、IDの配列が返されます。結合は、それらをコンマを挟んだ文字列に変換します。