我正在客户的网站上工作,该网站使用第三方库来填充SELECT dropdown
中的代码:
<select border="0" class="" id="country" style="" name="country" size="1" onchange="ChangeCountryAndStateLabel(
{
'obj' : this,
'targetObj' : '#state_cus1',
'sel' : '',
'id' : 'fields_state'
}
,
{
'obj' : this,
'targetObj' : '#fields_state_region',
'template' : '<LABEL>:'
});" >
<option value="" onclick="" >Select Country</option>
<option value="38" onclick="" >Canada</option>
<option value="223" onclick="" >United States</option></select>
这将填充:
<div id="state_cus1" style="width:165px;">
<input type="text" id="fields_state" name="fields_state" value="" onchange="SetStateHid(this);"/>
</div>
所有州(如果我选择美国)。
我想根据价值删除条目。
选择美国的输出将是这样的:
<div id="state_cus1" style="width:165px;">
<input type="text" id="fields_state" name="fields_state" value="" onchange="SetStateHid(this);"/>
</div>
<option value="AL" onclick="">Alabama (AL)</option>
etc etc etc...
填好后,我想根据价值删除一些。
所以要删除佛罗里达州我试过:
$("select > option[value*='FL']").remove();
然而,由于JS按顺序运行而不等待,因此在填充select
之前运行它是行不通的。
如何在填充select
之后才开始运行该功能?
修改
也试过:
$(document).ready(function() {
$("#fields_state").on("change", function(){
$("#fields_state > option[value*='FL']").remove();
}
编辑2
OnChange
已被删除,代码已移至.ready()
ll(document).ready(function() {
ll("#country").change(function(){
ChangeCountryAndStateLabel({
'obj' : this,
'targetObj' : '#state_cus1',
'sel' : '',
'id' : 'fields_state'
},{
'obj' : this,
'targetObj' : '#fields_state_region',
'template' : '<LABEL>'
});
ll("#fields_state > option[value*='FL']").remove();
});
此方法仍会填充select
个完整选项,但不会删除FL条目。
答案 0 :(得分:0)
放置这个:
$("select > option[value*='FL']").remove();
在此内部:
$("#country").on("change", function(){
$("#fields_state > option[value*='FL']").remove();
}
只有在更改选择时才会删除。把它放在你的JS中,你就会变得金黄。
修改强>
最好的解决方案是将onchange
全部删除。然后将代码放在JS中,如下所示:
$(document).ready(function() {
$("#country").on("change", function(){
ChangeCountryAndStateLabel({
'obj' : this,
'targetObj' : '#state_cus1',
'sel' : '',
'id' : 'fields_state'
},{
'obj' : this,
'targetObj' : '#fields_state_region',
'template' : '<LABEL>'
});
$("#fields_state > option[value*='FL']").remove();
});
});