Jquery - 在父DIV中查找select元素

时间:2009-12-07 22:47:05

标签: jquery html

我有父母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');

OR

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

这两种方法似乎都不起作用,我缺少什么?,以及是否有更好(更有效)的方法来实现这一目标?

额外信息:

我有2个具有相同名称的相同元素(因为它重复了一个自定义控件)。因此我无法直接访问Select元素,我必须从父DIV中找到父DIV中的select元素。

2 个答案:

答案 0 :(得分:1)

我认为您的语句中存在语法错误 - 您尝试按类选择下拉列表,因此选择器应为.ckgcountry而不是ckgcountry。另外,我没有看到与.txtField对应的元素,因此也可能导致失败。

但是,您可以将其用作选择器:

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

然而,我对你想对那些removeAttr('selected');做些什么感到困惑。如果您只想选择其他选项,请尝试:

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

答案 1 :(得分:0)

以下内容将允许您访问<select>元素,并允许您操作它的属性。例如;

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

或者(我认为这是一个更安全的选择 - 基于我的直觉)

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

不完全确定您需要对<select>元素执行什么操作,因此上述示例仅供参考。