我对 jQuery 相当陌生,所以这可能是一个简单的语法问题。当选择另一个选择下拉选项时,尝试更新选择下拉列表值。有一个onclick事件触发这个函数。下面的代码在 Firefox 中运行良好,但在 IE 中则不行。调试器不会给出任何错误。我使用 jQuery 而不是 $,因为我使用的是 Wordpress。
function update_sub_category()
{
jQuery('select[name="CATEGORY_SUB_TYPE"]').find('option').each(function(){
if(jQuery(this).attr('data_option') != jQuery('select[name="ENTRY_CATEGORY"] option:selected').val()) {
jQuery(this).hide();
}
if(jQuery(this).attr('data_option') == jQuery('select[name="ENTRY_CATEGORY"] option:selected').val()) {
jQuery(this).show();
}
});
};
这是 HTML
<tr>
<td>Entry Category</td>
<td><select onchange="update_sub_category()" name="ENTRY_CATEGORY">
<option value=""></option>
<option value='1'>Filter Option 1</option>
<option selected='selected' value='2'>Filter Option 2</option>
<option value='3'>Filter Option 3</option>
</select>
</td>
<td class="alignright">Category Sub Type</td>
<td><select name="CATEGORY_SUB_TYPE">
<option data_option='1' value='1-1'>Option 1-1</option>
<option data_option='1' value='1-2'>Option 1-2</option>
<option data_option='2' value='2-1'>Option 2-1</option>
<option data_option='3' value='3-1'>Option 3-1</option>
</select>
</td>
</tr>
最佳答案
我认为某些版本的 IE 不会触发 onclick
上<option .../>
。将代码更改为:
<select onChange="update_sub_category()">
<option value="1">...</option>
...
</select>
或者使用 jQuery 绑定(bind)您的更改事件:
$(myElement).on('change', function() { /* myElement changed */ });
顺便说一句:
您可以在 if 语句后添加 else:
if ( condition ) {
// do stuff if condition is true
}
else {
// do stuff if condition is false
}
关于javascript - jQuery 函数在 Internet Explorer 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27042924/