2009-12-07 7 views
1

내가 가진 내부 선택 요소를 찾기 :JQuery와 - 부모 사업부 부모 DIV

<div id="ctl00_MainContentAreaPlaceHolder_deliveryOpen" class="delivery_open" style="display: block;"> 

//Child select Element 
<select class="txtfield ckgcountry" id="ctl00_MainContentAreaPlaceHolder_DeliveryPersonalInformation_country" name="ctl00$MainContentAreaPlaceHolder$DeliveryPersonalInformation$country"> 
<option value="DE">ALLEMAGNE</option> 
<option value="TF">TERRES AUSTRALES FR.</option> 
<option value="TH">THAILANDE</option> 

</select> 

</div> 

을 나는 사용하여 드롭 다운 값 선택한 항목을 변경하려고 :

$j("div[id*='deliveryOpen'] > .txtfield ckgcountry").removeAttr('selected'); 

또는

$j(".delivery_open > .txtfield ckgcountry").removeAttr('selected'); 

두 가지 방법 모두 작동하지 않는 것 같습니다. 무엇이 없습니까? 그리고 또한 더 나은 (보다 효율적인) 방법으로 에스?

추가 정보 :

내가 같은 이름 (그 하나의 사용자 지정 컨트롤이 반복 이후)와 같은 요소의 2있다. 따라서 Select 요소에 직접 액세스 할 수 없기 때문에 상위 DIV에서 이동하여 상위 DIV 내부의 select 요소를 찾아야합니다.

답변

1

진술 문에 구문 오류가 있다고 생각합니다. 클래스별로 드롭 다운을 선택하려고하므로 선택자는 ckgcountry 대신 .ckgcountry이되어야합니다. 또한 .txtField에 해당하는 요소가 표시되지 않으므로 오류가 발생할 수도 있습니다.

그러나, 당신은 당신의 선택으로 사용할 수 있습니다 :

$("select[id$='DeliveryPersonalInformation_country']") 

난 당신이 그러나 그 removeAttr('selected'); 수행 할 작업에 관해서는 조금 혼란 스러워요. 그냥 다른 옵션을 선택하려는 경우, 시도 :

$("select[id$='DeliveryPersonalInformation_country']").val("TF"); 
+0

동일한 이름의 동일한 요소가 두 개 있습니다. (하나의 맞춤 컨트롤이 반복되어서 Select 요소에 직접 액세스 할 수 없기 때문에 부모 DIV에서 이동하여 부모 DIV 내부에서 선택 요소를 찾아야합니다.) –

+0

div가 고유하게 명명 된 경우 원래 선택기가 원하는 항목 (.txtField 선택기 빼기)에 매우 근접 할 수 있습니다. $ ("div [id $ = 'deliveryOpen']> .ckgountry"). val ("TF") 설명에 따르면 클래스 선택기 대신 div에 대한 id 특성 선택기를 사용하려고합니다. – ddango

0

다음은 당신이 <select> 요소에 대한 액세스를 제공하고 당신이 속성의 조작 할 수 있습니다. 예를 들어;

$j('.delivery_open > .txtfield.ckgcountry').attr('value', 'DE'); 

또는 (I이 하나가 안전한 선택이 될 것입니다 생각 - 내 직감 기준)

$('.delivery_open > .txtfield.ckgcountry').attr('selectedIndex', 2); 

하지 위의 예는 그래서 당신의 <select> 요소와해야 할 일을 완전히 확인 가이드.