14

リストされている州 (例: インド) の下にあるすべての都市を選択する必要があります。私はすべてを選択します:

<input type="checkbox" class="selectall" /> Select All

次に、以下のエラーが表示されます。

this.elem.prop は関数ではありません

これは私のコードです:

jQuery('.selectall').click(function() {
    stop = false;
    jQuery(this).closest('div').nextAll().each( function() {
        elem = jQuery(this).find('input');
        console.log(elem);
        if (stop || elem.hasClass('selectall')) {
            stop = true;
            return;
        }
        else
            elem.prop("checked", true);
    });
});
4

2 に答える 2

31

このprop()メソッドはjQuery1.6でのみ追加されました。以前のバージョンでは、を使用する必要がありますattr()

elem.attr("checked", true);

他の回答についてelemは、この行で定義されているように、すでにjQueryオブジェクトであることに注意してくださいelem = jQuery(this).find('input');。したがって、prop()jQueryバージョンがサポートしている場合はメソッドを使用できます。


アップデート

チェックボックスを切り替えるには、次を使用します。

if (stop || elem.hasClass('selectall')) {
    stop = true;
    return;
}
else
    elem.prop("checked", !elem.is(':checked')); // toggle the checkbox
于 2013-01-09T09:57:54.677 に答える
0

JQuery のバージョンは v1.6 より古い必要があります。「prop」関数が v1.6 以降でのみ追加されたことを示す次の JQuery ドキュメント リンクを参照してください。

http://api.jquery.com/prop/

したがって、問題の解決策は、「prop」の代わりに「attr」関数を使用することです。

どうやら、attr は属性 (HTML 要素の初期文字列値) を取得し、prop はプロパティ (DOM 操作値である可能性があり、文字列、ブール値などの任意の型である可能性があります) を取得します。2 つの違いの詳細については、次の Stackoverflow リンクを参照してください。

.prop() と .attr()

于 2016-06-21T14:22:01.117 に答える