2016-11-07 1 views
18

나는 만들고있는 SPA의 내용을 변경하는 방법으로 JS를 사용하고 있습니다. 나는 내용을 변경하는 버튼을 누르면이에서 HTML 변경 :JQuery : div가 표시되는 경우

지금 내 SPA의 부분은 체크 박스의 숫자를 포함하는 사업부를 가지고

<div id="selectDiv" style> 
, 각각을 대표하는이에

<div id="selectDiv" style="display: none;"> 

div, 제출 버튼을 누르면 표시되어야하는 다음 div가 선택되어있는 체크 박스 목록의 첫 번째 항목이됩니다.

JQuery에서 "거의 감지 할 수있는"코드가있는 div가 표시되는지 궁금합니다. 다음과 같이 입력하십시오 :

if($('#selectDiv').isVisible()){ 
    //JS code associated with this div. 
} 

제안 사항?

+0

'.hasClass' 함수를 사용하면 이런 일을 할 수 없습니까? 요소에 특정 클래스가 있는지 확인한 다음 거기에서부터 이동합니까? –

+0

'if (document.getElementById ("selectDiv"). style.display! == "none") {...}' –

+0

"거의 탐지"한다는 것은 무엇을 의미합니까? $ elem.is (": visible")를 사용하여 요소가 보이는지 확인할 수 있습니다! – Gacci

답변

28

당신은 .is(':visible')

을 볼 수있는 모든 요소를 ​​선택 사용할 수 있습니다.

$('div:visible').callYourFunction(); 

라이브 예 :

console.log($('#selectDiv').is(':visible')); 
 
console.log($('#visibleDiv').is(':visible'));
#selectDiv { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="selectDiv"></div> 
 
<div id="visibleDiv"></div>

또한

if($('#selectDiv').is(':visible')){ 

, 당신은으로 볼 수있는 사업부를 얻을 수 있습니다 : 예를 들어

+1

안녕하세요 -이 답변의 정확성에 대해 논쟁하지는 않지만 이와 같은 질문에 대해서는 속임수를 제안하거나 투표하는 것을 고려해보십시오. 이미 스택 오버 플로우에 존재하는 몇 가지 포괄적 인 답변이 있으므로이 질문을 대신 지적 할 수 있습니다. – Serlite

+0

이렇게 할 수 있을까요? { //이 div와 연결된 JS 코드 } });) (if ($ ('# selectDiv'). –

+0

예, 내 업데이트를 참조하십시오. –

관련 문제