5

以下のコードでは、「Mexico」をチェックすると、「MexicoMexico」がラベル テキストとして返されます。他のすべてのフィールドでは、この重複した結果が得られません。これは、この 1 つのフィールドのみです。この問題は、countryvalues[i] の最初の割り当ての直後に発生しますが、その理由はわかりません。

<div id="country">
....
   <li><input type="checkbox" name="country" value="mexico" class="checkbox">
   <label for="mexico">Mexico</label></input></li>
</div>

countryvalues = $('#country input:checkbox:checked').map(function() {
    return this.value;
}).get(); 
for (var i=0; i<countryvalues.length; i++)
    {
        countryvalues[i] = $("label[for='" + countryvalues[i] + "']").text();
        countryvalues[i] = countryvalues[i].split(' ').join('%20');
        fields = fields + "coveraa!";
        url = url + countryvalues[i] + "!";
    }
4

3 に答える 3

7

Sarina さん、 で.map()再度ループするのではなく、コールバック内で探している文字列を取得することをお勧めしますfor(...){...}

var countryvalues = $('#country input:checkbox:checked').map(function() {
    return $(this).next("label").text().split(' ').join('%20');
}).get();

HTML から のすべてのインスタンスが削除</input>され、入力要素が自己閉鎖されていることを確認してください<input ... />

于 2013-04-09T05:01:07.583 に答える
1

複数ある場合は li. 次に、このコードを使用して、チェックされたcheckboxラベル テキストを取得できます。

JS フィドル リンク

<div id="country">
....
   <li><input type="checkbox" name="country" value="mexico" class="checkbox">
   <label for="mexico">Mexico</label></input>
    </li>
    <li><input type="checkbox" name="country" value="mexico" class="checkbox">
   <label for="mexico">Canada</label></input>
    </li>
</div>


$(document).ready(function(){
    $('#country li input:checkbox').change(
        function() {
            //alert('HI');
            alert($(this).next('label').text());
                   }
    );
});
于 2013-04-08T05:52:04.857 に答える
0

以下の例を確認すると、jQuery でチェックボックスのラベルを取得するスクリプトを取得できます

<html>
 <body>
     <ul>
         <li>
             <input type="checkbox" name="mouse" value="1" id="mouse"  /><label for="mouse">Mouse</label>
            </li>
            <li>
             <input type="checkbox" name="keyboard" value="1" id="keyboard"  /><label for="mouse">Keyboard</label>
            </li>
            <li>
             <input type="checkbox" name="monitor" value="1" id="monitor"  /><label for="mouse">Monitor</label>
            </li>
        </ul>
    </body>
</html>

<script type="text/javascript">
 var label = jQuery('label[for=' + jQuery(this).attr('id') + ']').html();
 alert(label);
</script>

ここから取得したコード: http://chandreshrana.blogspot.in/2015/09/how-to-get-checkbox-label-text-jquery.html

于 2016-03-08T11:22:06.250 に答える