HTML부터 시작하겠습니다.
<form class="send_units">
<div class="buttons">
<div id="button_attack" class="button">
<div class="caption at">Attack!</div>
</div>
<div id="button_support" class="button">
<div class="caption sp">Support!</div>
</div>
</div>
</form>
웹 사이트에있는 코드의 예입니다. 그 웹 사이트에 대한 스크립트를 만들었습니다. 해당 스크립트를 실행하기 위해 플레이어는 Tampermonkey를 사용할 수 있습니다. 웹 페이지에 코드를 추가 할뿐입니다. 참고 : HTML은 변경할 수 없습니다!
따라서 Attack!을 클릭하면 양식의 클래스 이름 (이 예에서는 send_units)을 가져와야합니다. 단추.
사용자가 클릭 한 요소를 파악하기 위해 Javascript를 사용합니다.
window.onclick = function(e){
var clickedClass = e.target.className;
var clickedID = e.target.id;
if(clickedClass == 'caption at'){
// Check if parent form has class send_units
}
}
따라서 사용자가으로 버튼을 클릭 class = 'caption at'
하면 양식 클래스가 send_units인지 확인해야합니다.
나는 수업을 얻기 위해 이것을 시도했다.
jQuery(e).find('form').parent().prop('class')
그러나 "정의되지 않음"을 반환합니다. (논리에 따르면 "form"요소를 사용하여 클릭 한 요소의 부모를 가져오고 해당 요소의 className을 가져옵니다.)
아무도 내가 여기서 뭘 잘못하고 있는지 설명해 줄 수 있습니까?
감사!
사용 .parents( selector )
요소에 DOM까지 당신이 필요로하는 여러 레벨을 통과하기 위해 .hasClass( class )
클래스의 존재를 테스트합니다.
window.onclick = function(e){
var clickedClass = e.target.className;
var clickedID = e.target.id;
if(clickedClass == 'caption at'){
var is_send_units = $( e.target ).parents( 'form' ).hasClass( 'send_units' );
console.log( is_send_units );
if( is_send_units ){
// do stuff
}
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="send_units">
<div class="buttons">
<div id="button_attack" class="button">
<div class="caption at">Attack!</div>
</div>
<div id="button_support" class="button">
<div class="caption sp">Support!</div>
</div>
</div>
</form>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다