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_"]')选择所有匹配的元素。您的代码执行以下操作:

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 回答
0

$('div[id^="testdiv_"]').css("display", "none")将所有 id 以“testdiv_”开头的 div 设置为无显示,$('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 回答