3

次のHTMLブロックがあるとします。

<ul id="taglist">
<li><a name="45" href="">Product 1</a></li>
<li><a name="1146" href="">Product 2</a></li>
<li><a name="13437" href="">Product 3</a></li>
<li><a name="51" href="">Product 4</a></li>
</ul>

JQUERYがSTRINGを返すことは可能ですか?名前の値を持つ1つの変数:

alert(tagliststring);

警告します:45,1146,13437,51

ありがとう

4

3 に答える 3

7

each次の機能を使用できます。

var names = [];
$('#taglist > li > a').each(function() {
    names.push(this.name);
});
var result = names.join(',');
alert(result);

このように、names個々の名前で満たされた配列になり、result探しているコンマ区切りの文字列になります。

詳細については、jQueryのドキュメントを参照してください。

これを行うさらに小さな方法は、jQueryのmap関数を使用することです。

var names = $('#taglist > li > a').map(function() { return this.name; }).get();
var result = names.join(',');

最初の例は、おそらく人々が読んで理解しやすいでしょう。

于 2010-03-22T02:05:22.587 に答える
5

使用$.map

var names = $('#taglist > li > a').map(function() {
  return this.name;
}).get().join(',');
// names will contain the string: "45,1146,13437,51"

この$.mapメソッドを使用すると、現在一致しているセットの各要素を関数に渡して、戻り値を含む新しいjQueryオブジェクトを生成できます。

その後$.mapgetメソッドを使用してプレーンなJavaScript配列オブジェクトを取得します。最後にjoinメソッドを呼び出して文字列を生成できます。

上記の例をここで確認してください。

于 2010-03-22T02:09:52.250 に答える
0
var output; 
$('li a').each( function() { output += $(this).attr('name') + ','; });

これは最後に余分なものを出力することに注意してください,

于 2010-03-22T02:05:16.503 に答える