1

私はこのようなULを持っています:

<ul class="options" id="selt_count">
  <li value="1">One</li>
  <li value="2">Two</li>
  <li value="5">Five</li>
  <li value="12">Other</li>
</ul>
<input type="submit" id="send1" value="send">

このスクリプトを使用して、li のすべての値を jquery の次の形式 (1,2,5,12) の変数に取得しました。

<script>
    $(document).ready(function(){
        $("#send1").click(function(){
            var values = $('#selt_count li').map(function() {
                return this.value
            });
            values;
            var s = '(' + values.get().join(',') + ')';
            alert (s);
        });
    });
</script>

ただし、li の値が文字として指定されている場合、このスクリプトは機能しません。

例: 今私は ul を持っています:

<ul class="options" id="selt_count">
    <li value="jonh">One</li>
    <li value="jack">Two</li>
    <li value="black">Five</li>
    <li value="barbosa">Other</li>
</ul>

スクリプトは (0,0,0,0) を表示します

誰でも私を助けて、エラーが何であるか教えてもらえますか? 前もって感謝します。

4

4 に答える 4

1

テキストを取得する代わりに、を使用して値属性を取得します.attr()

var text = $(this).attr('value');
于 2013-03-18T06:14:57.267 に答える
1

次のような HTML を試してください。

<ul class="options" id="selt_count">
    <li data-value="jonh">One</li>
    <li data-value="jack">Two</li>
    <li data-value="black">Five</li>
    <li data-value="barbosa">Other</li>
</ul>

JavaScript は次のようになります。

<script>
$('#selt_count li').click(function() {
    var index = $(this).index();
    var text = $(this).text();
    var value = $(this).attr('data-value');
    alert('Index is: ' + index + ' , text is ' + text + ' and value is ' + value);
});
</script>

詳細はdata-*こちら: http://html5doctor.com/html5-custom-data-attributes/


あなたの編集に基づく追加のスクリプト...

<script>
    $(document).ready(function(){
        $("#send1").click(function(){
            var values = $('#selt_count li').map(function() {
                return $(this).attr('data-value');
            });
            var s = '(' + values.get().join(',') + ')';
            alert (s);
        });
    });
</script>
于 2013-03-18T06:16:52.643 に答える
0

.index() の使い方が間違っています。ドキュメントをチェックしてください: .index()

于 2013-03-18T06:16:33.910 に答える
0

このリンクを試してください。これはあなたを助けるかもしれません。

と、

$('#selt_count li').click(function() {
    var index = $(this).attr('value');
    var text = $(this).text();
    alert('Index is: ' + index + ' and text is ' + text);
});
于 2013-03-18T06:19:35.190 に答える