1

私はjQueryを初めて使用し、まだ構文を学習しています。特定の形式のすべてのチェックボックスをループして、xの「値」で設定した要素をサーバーから削除するためのヘルプが必要です。私がこれまでに持っている構文は機能していませんが、次のとおりです。

$('#FormA > :checkbox').each(function() {
     var i = $(this);
     if(i.attr('value') == "-99")
     {
          i.remove();   
     }
});

APIを読んだ後、内部で.each()メソッドがjQueryに渡すすべてのDOM要素に対して「java拡張forループ」スタイルの反復を実行することがわかります。わからないけど...

ご協力いただきありがとうございます!

4

6 に答える 6

4

属性セレクターを使用してみてください。

$('#FormA > :checkbox[value=-99]').remove();
于 2012-05-04T14:45:49.317 に答える
3

私はこれがうまくいくかもしれないと思います:

$("#FormA :checkbox[value=-99]").remove()

于 2012-05-04T14:45:29.033 に答える
3

ほとんどのjQueryメソッドは、一致したセット内のすべての要素に適用されます。あなたがやろうとしていることをするために、あなたはただ正しい要素のセットを選択して、を呼ぶ必要がありますremove。の必要はありませんeach。例えば:

$("#FormA > :checkbox[value='-99']").remove();

これは、「属性が等しい」セレクターvalueを使用して、のが。であるチェックボックス入力要素を検索します-99。次に、選択したすべての要素をDOMから削除します。

removeこれを明確にするためのドキュメント:

一致した要素のセットをDOMから削除します。

于 2012-05-04T14:45:59.517 に答える
1

Ma no jQueryを見てください!パーティーには少し遅れましたが、純粋なJSの方法です。

</ p>

var form = document.getElementById("formA");

[].forEach.call(form.querySelectorAll('input[type="checkbox"][value="-99"]'),function(el){form.removeChild(el);});​

ライブデモ

また、そのMAGNITUDESはより速くなります。

JSパフォーマンス

于 2012-05-04T14:54:04.020 に答える
0

$('#FormA:checkbox')を使用すると、セレクターが機能する可能性が高くなります。現在の方法では、チェックボックスがフォームのすぐ下にある必要があります。

于 2012-05-04T14:45:39.077 に答える
-1

これを使って:

$('.YourClass:checked').each(function(){
i=$(this)
if(i.val()=='-99'){i.remove()}
})
于 2012-05-04T15:30:01.197 に答える