我有父母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元素。
答案 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>
元素执行什么操作,因此上述示例仅供参考。