1

このコードに問題があります。チェックされていないすべてのフィールドとすべてのフィールドをtestdiv削除したいです。style="display:none"

しかし、このコードではすべてを削除しますtestdiv

$("#post_form").submit(function() {
    if ($('div[id^="testdiv_"]').not(":checked") || $('div[id^="testdiv_"]').css("display", "none")) {
        $('div[id^="testdiv_"]').remove();
        alert('OK');
    }
    else {
        alert('Error');
    }
});

助けてくれてありがとう。

4

3 に答える 3

0

$('div[id^="testdiv_"]').css("display", "none")"testdiv_" で始まる ID を持つすべての div を none の表示に設定し、それ$('div[id^="testdiv_"]').remove();を簡単に削除します。

css をチェックするには、css を設定する代わりに を使用します$('div[id^="testdiv_"]').css("display") === "none"

于 2012-06-18T14:27:15.387 に答える
0
$('div[id^="testdiv_"]').css("display", "none")

これにより、すべて$('div[id^="testdiv_"]')が非表示に設定されます。

試してみてください$('div[id^="testdiv_"]:hidden')

また、

$('div[id^="testdiv_"]').remove();

これにより、すべてが削除されます$('div[id^="testdiv_"]')。代わりに次のようにしてみてください。

$('div[id^="testdiv_"]:hidden,div[id^="testdiv_"]:not(:checked)').remove();
于 2012-06-18T14:27:43.820 に答える
0

セレクター$('div[id^="testdiv_"]')は、一致するすべての要素を選択します。コードは次のことを行います。

For each element that matches($('div[id^="testdiv_"]').not(":checked") || $('div[id^="testdiv_"]').css("display", "none"))
    Remove all elements that match $('div[id^="testdiv_"]')

おそらく、jQuery の .each を使用したいでしょう: http://api.jquery.com/jQuery.each/C

于 2012-06-18T14:30:29.830 に答える