2017-01-02 10 views
0

jQuery 1.12를 사용하고 있습니다. I는 당신이 "리"요소, 다음 줄

을 볼 수 있습니다

<div class="select" tabindex="1" style="width: 235px;"><select class="selectField selectMenu form-control select-hidden" name="user[address_attributes][state_id]" id="user_address_attributes_state_id" style=""> 
    <option value="">Select State</option> 
    <option value="3526">Alabama</option> 
    <option value="3556">Alaska</option> 
    <option value="3547">Arizona</option> 
    <option value="3510">Arkansas</option> 
    <option value="3542">California</option> 
    <option value="3543">Colorado</option> 
    <option value="3527">Connecticut</option> 
    <option value="3512">Delaware</option> 
    <option value="3513">Florida</option> 
    <option value="3514">Georgia</option> 
    <option value="3555">Hawaii</option> 
    <option value="3548">Idaho</option> 
    <option value="3529">Illinois</option> 
    <option value="3530">Indiana</option> 
    <option value="3528">Iowa</option> 
    <option value="3515">Kansas</option> 
    <option value="3557">Kentucky</option> 
    <option value="3516">Louisiana</option> 
    <option value="3531">Maine</option> 
    <option value="3517">Maryland</option> 
    <option value="3558">Massachusetts</option> 
    <option value="3532">Michigan</option> 
    <option value="3533">Minnesota</option> 
    <option value="3519">Mississippi</option> 
    <option value="3518">Missouri</option> 
    <option value="3549">Montana</option> 
    <option value="3534">Nebraska</option> 
    <option value="3545">Nevada</option> 
    <option value="3535">New Hampshire</option> 
    <option value="3536">New Jersey</option> 
    <option value="3544">New Mexico</option> 
    <option value="3537">New York</option> 
    <option value="3520">North Carolina</option> 
    <option value="3550">North Dakota</option> 
    <option value="3538">Ohio</option> 
    <option value="3521">Oklahoma</option> 
    <option value="3551">Oregon</option> 
    <option value="3559">Pennsylvania</option> 
    <option value="3539">Rhode Island</option> 
    <option value="3522">South Carolina</option> 
    <option value="3552">South Dakota</option> 
    <option value="3523">Tennessee</option> 
    <option value="3524">Texas</option> 
    <option value="3546">Utah</option> 
    <option value="3540">Vermont</option> 
    <option value="3560">Virginia</option> 
    <option value="3553">Washington</option> 
    <option value="3511">Washington, D.C.</option> 
    <option value="3525">West Virginia</option> 
    <option value="3541">Wisconsin</option> 
    <option value="3554">Wyoming</option> 
</select><div class="select-styled active">Select State</div><ul class="select-options" style="display: block;"><li rel="">Select State</li><li rel="3526">Alabama</li><li rel="3556">Alaska</li><li rel="3547">Arizona</li><li rel="3510">Arkansas</li><li rel="3542">California</li><li rel="3543">Colorado</li><li rel="3527">Connecticut</li><li rel="3512">Delaware</li><li rel="3513">Florida</li><li rel="3514">Georgia</li><li rel="3555">Hawaii</li><li rel="3548">Idaho</li><li rel="3529">Illinois</li><li rel="3530">Indiana</li><li rel="3528">Iowa</li><li rel="3515">Kansas</li><li rel="3557">Kentucky</li><li rel="3516">Louisiana</li><li rel="3531">Maine</li><li rel="3517">Maryland</li><li rel="3558">Massachusetts</li><li rel="3532">Michigan</li><li rel="3533">Minnesota</li><li rel="3519">Mississippi</li><li rel="3518">Missouri</li><li rel="3549">Montana</li><li rel="3534">Nebraska</li><li rel="3545">Nevada</li><li rel="3535">New Hampshire</li><li rel="3536">New Jersey</li><li rel="3544">New Mexico</li><li rel="3537">New York</li><li rel="3520">North Carolina</li><li rel="3550">North Dakota</li><li rel="3538">Ohio</li><li rel="3521">Oklahoma</li><li rel="3551">Oregon</li><li rel="3559">Pennsylvania</li><li rel="3539">Rhode Island</li><li rel="3522">South Carolina</li><li rel="3552">South Dakota</li><li rel="3523">Tennessee</li><li rel="3524">Texas</li><li rel="3546">Utah</li><li rel="3540">Vermont</li><li rel="3560">Virginia</li><li rel="3553">Washington</li><li rel="3511">Washington, D.C.</li><li rel="3525">West Virginia</li><li rel="3541">Wisconsin</li><li rel="3554">Wyoming</li></ul></div> 

$(".select").bind('keydown', function(event) { 
    elt = $(this)[0]; 
    console.log(elt.outerHTML); 
    elt = $(this)[0].search("li") 
    console.log(elt.length); 
    switch(event.keyCode){ 
    // case up 
    case 38: 

     break; 
    case 40: 
     break; 
    } 
}); 

비록 첫 번째 목록 인쇄를 사용하여, $ (이) 내에서 요소를 선택하기 위해 노력하고있어

elt = $(this)[0].search("li") 

반환

TypeError: $(...)[0].search is not a function 

$ (this) 내의 첫 번째 "li"요소는 어떻게 선택합니까? 다음은 문제를 설명하는 바이올린입니다 - http://jsfiddle.net/cwzjL2uw/14/.

+1

글쎄, 요소에는'search' 함수가 없습니다. 그리고 어쨌든'li' 요소가 보이지 않습니다. 정확히 어떻게 작동하리라고 예상했는지는 알 수 없습니다. – Oriol

답변

1

이상한 조합의 바닐라 JS (예 : [0] 하나의 요소 색인, outerHTML)와 jQuery를 사용하고 있습니다.

$(this)[0] 

는 더 이상 JQuery와 객체가되고 그것은하지 않습니다 : 당신이 할 때

$(this).find('li:first'); 
0

을 : $(this) 내 첫 li 요소를 찾기 위해 jQuery를 사용

, 당신은 사용하지 않는 것 .search 메소드가 있습니다. 클래스별로 첫 번째 요소를 가져 오려면 다음을 사용하십시오.

elt = $(this).first(); 
+0

그리고 나서 jQuery의 .search() 메소드를 사용할 수있다. – Mifort