2012-06-18 6 views
1

이 코드에 문제가 있습니다. testdiv을 모두 style="display:none"으로 삭제하고 확인하지 않은 모든 필드를 삭제하고 싶습니다.Jquery checked or display

그러나이 코드를 사용하면 모두 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'); 
    } 
}); 

도움 주셔서 감사합니다.

+0

를? 너는 무엇을 제거하려고 하는가? 너의 상태가 뭐니? –

+0

[http://jsfiddle.net/8QM8n/](http://jsfiddle.net/8QM8n/) 그게 내가 원하는거야. 그러나 그것은 효과가 없습니다. –

답변

0

$('div[id^="testdiv_"]').css("display", "none")은 "testdiv_"로 시작하는 모든 div를 none으로 설정합니다. $('div[id^="testdiv_"]').remove();은 편리하게 제거합니다.

css를 확인하려면 css를 설정하는 대신 $('div[id^="testdiv_"]').css("display") === "none"을 사용하십시오.

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(); 
+0

그래, 테스트 해봤지만 작동하지 않습니다. 여기에서 볼 수 있습니다. [http://jsfiddle.net/8QM8n/](http://jsfiddle.net/8QM8n/) –

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 사용할

:`testdiv`은 무엇입니까 http://api.jquery.com/jQuery.each/C