要显示 dropdown2 (可能是其他任何内容),我使用 dropdown1 onchange="getFilterOption()"
。
HTML (调用函数getFilterOption)
<select name="filter" data-userid="3" onchange="getFilterOption()">
<option value="one">One</option>
<option value="two">Two</option>
</select>";
jQuery (函数getFilterOption)
function getFilterOption() {
$("#TargetFilterOption").append('<select id="filter_class1" name="filter1" data-privelesid1="".$priveles_id."" onchange="getFilter1(this.value)"><option value="">Filter</option><option value="All">All</option><option value="Yes">Yes</option><option value="No">No</option></select>');
};
问题
当我第一次使用下拉菜单时(例如,我选择One),程序会返回一些信息以及 dropdown2 (这就是我想要的)。但是当我选择AGAIN另一个选项(例如Two或其他)时,程序会再次返回 dropdown2 。所以我得到两个 dropdown2 。
如果只显示 dropdown2 ,我该怎么办?类似于:如果 dropdown2 已添加到页面,请不要调用函数getFilterOption。
答案 0 :(得分:1)
使用html()
功能代替append()
。 html()
替换以前的html,而append()
在现有后添加新的html。
$("#TargetFilterOption").html('<select id="filter_class1" name="filter1" data-privelesid1="".$priveles_id."" onchange="getFilter1(this.value)"><option value="">Filter</option><option value="All">All</option><option value="Yes">Yes</option><option value="No">No</option></select>')
答案 1 :(得分:0)
如果你只想调用一次在jquery中使用一个函数
$('select').one('change',function getFilterOption()
{
$("#TargetFilterOption").append('<select id="filter_class1" name="filter1" data-privelesid1="".$priveles_id."" onchange="getFilter1(this.value)"><option value="">Filter</option><option value="All">All</option><option value="Yes">Yes</option><option value="No">No</option></select>');
});