jquery 라디오나 체크박스의 정확한 자세를 선택하십시오

2565 단어
jquery 라디오나 체크박스의 정확한 자세를 선택하십시오
Intro
며칠 전에 갑자기 문제가 생겼어요. 아무런 징조도 없었어요...jquery가 라디오 button 단일 선택 상자를 선택했을 때 선택할 수 없었습니다. 나중에 많은 자료를 찾았는데 자신의 자세에 문제가 있다는 것을 발견했습니다.
Issue
내가 아래의 방식대로 라디오를 선택했을 때, 때때로 선택하지 못할 때가 있다는 것을 발견했다.
    
                                    

다음은 제 js 코드입니다.
    //      jquery.js       
    ...
    $("input[type='radio'][name='isOnSale'][value='1']").attr("checked","checked");

Solution0
attribute와property 구분
attribute와property는 다르다
property는 html 라벨의 고유한 속성이고attribute는 대부분 html 사용자 정의 속성이다.
attribute는 html 문서의 탭 속성이고property는DOM 요소에 대응하는 자체 속성입니다.조작 방법에서 볼 때attribute는DOM규범getAttributesetAttribute를 통해 수정할 수 있고,property는 대상이 속성에 접근하는 방식.이나 [""]을 통해 수정할 수 있다.jquery에서attribute를 가져오거나 설정하는 것은attr, 가져오거나 설정하는 것은propProperty
DOM 노드는 하나의 대상이기 때문에 자바스크립트의 대상처럼 사용자 정의 속성과 방법을 저장할 수 있습니다.
Attribute
DOM 노드는 다음과 같은 표준 방법으로 HTML의attribute에 접근할 수 있다
    elem.hasAttribute(name) - checks if the attribute exists
    elem.getAttribute(name) - gets an attribute value
    elem.setAttribute(name, value) - sets an attribute
    elem.removeAttribute(name) - removes an attribute

checked는 input 탭의 속성 (property) 이지 attribute가 아닙니다. 참고http://www.w3school.com.cn/tags/att_input_checked.asp
추가input와 관련된 속성은 다음과 같습니다.http://www.w3school.com.cn/tags/tag_input.asp
Solution1
HACK:mock click
선택한 후 호출 대상의 클릭 () 방법을 설정하고 아날로그 클릭
    //toogle
    $("input:radio[name='isOnSale'][value='1']").click();

Solution2
input의 checked 속성 설정
원생 js
    //check
    document.getElementsByName("isOnSale")[0].checked = true;
    //uncheck
    document.getElementsByName("isOnSale")[0].checked = false;

jquery
    //
    $("input[type='radio'][name='isOnSale'][value='1']").prop("checked",true);

More
만약 당신이 다른 더 좋은 해결 방안이 있다면 지적을 환영합니다.
질문이 있으면 연락 주세요[email protected]

좋은 웹페이지 즐겨찾기