.= 'tag.htm'; break; case 'flag': $pre .= $default_pre .= 'flag.htm'; break; case 'my': $pre .= $default_pre .= 'my.htm'; break; case 'my_password': $pre .= $default_pre .= 'my_password.htm'; break; case 'my_bind': $pre .= $default_pre .= 'my_bind.htm'; break; case 'my_avatar': $pre .= $default_pre .= 'my_avatar.htm'; break; case 'home_article': $pre .= $default_pre .= 'home_article.htm'; break; case 'home_comment': $pre .= $default_pre .= 'home_comment.htm'; break; case 'user': $pre .= $default_pre .= 'user.htm'; break; case 'user_login': $pre .= $default_pre .= 'user_login.htm'; break; case 'user_create': $pre .= $default_pre .= 'user_create.htm'; break; case 'user_resetpw': $pre .= $default_pre .= 'user_resetpw.htm'; break; case 'user_resetpw_complete': $pre .= $default_pre .= 'user_resetpw_complete.htm'; break; case 'user_comment': $pre .= $default_pre .= 'user_comment.htm'; break; case 'single_page': $pre .= $default_pre .= 'single_page.htm'; break; case 'search': $pre .= $default_pre .= 'search.htm'; break; case 'operate_sticky': $pre .= $default_pre .= 'operate_sticky.htm'; break; case 'operate_close': $pre .= $default_pre .= 'operate_close.htm'; break; case 'operate_delete': $pre .= $default_pre .= 'operate_delete.htm'; break; case 'operate_move': $pre .= $default_pre .= 'operate_move.htm'; break; case '404': $pre .= $default_pre .= '404.htm'; break; case 'read_404': $pre .= $default_pre .= 'read_404.htm'; break; case 'list_404': $pre .= $default_pre .= 'list_404.htm'; break; default: $pre .= $default_pre .= theme_mode_pre(); break; } if ($config['theme']) { $conffile = APP_PATH . 'view/template/' . $config['theme'] . '/conf.json'; $json = is_file($conffile) ? xn_json_decode(file_get_contents($conffile)) : array(); } !empty($json['installed']) and $path_file = APP_PATH . 'view/template/' . $config['theme'] . '/htm/' . ($id ? $id . '_' : '') . $pre; (empty($path_file) || !is_file($path_file)) and $path_file = APP_PATH . 'view/template/' . $config['theme'] . '/htm/' . $pre; if (!empty($config['theme_child']) && is_array($config['theme_child'])) { foreach ($config['theme_child'] as $theme) { if (empty($theme) || is_array($theme)) continue; $path_file = APP_PATH . 'view/template/' . $theme . '/htm/' . ($id ? $id . '_' : '') . $pre; !is_file($path_file) and $path_file = APP_PATH . 'view/template/' . $theme . '/htm/' . $pre; } } !is_file($path_file) and $path_file = APP_PATH . ($dir ? 'plugin/' . $dir . '/view/htm/' : 'view/htm/') . $default_pre; return $path_file; } function theme_mode_pre($type = 0) { global $config; $mode = $config['setting']['website_mode']; $pre = ''; if (1 == $mode) { $pre .= 2 == $type ? 'portal_category.htm' : 'portal.htm'; } elseif (2 == $mode) { $pre .= 2 == $type ? 'flat_category.htm' : 'flat.htm'; } else { $pre .= 2 == $type ? 'index_category.htm' : 'index.htm'; } return $pre; } ?>javascript - Internet Explorer doesn't know how to add options tag to a select in jQuery - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Internet Explorer doesn't know how to add options tag to a select in jQuery - Stack Overflow

programmeradmin0浏览0评论

Im facing a problem with jQuery in the Internet Explorer 7 and 8, while trying to add a option to a existing select:

var s = document.getElementById("category");
s.options.add(select_option);

But IE just says:

Object doesn't support this property or method

and points to s.options.add(select_option);

Im facing a problem with jQuery in the Internet Explorer 7 and 8, while trying to add a option to a existing select:

var s = document.getElementById("category");
s.options.add(select_option);

But IE just says:

Object doesn't support this property or method

and points to s.options.add(select_option);

Share Improve this question edited Jul 18, 2022 at 11:27 β.εηοιτ.βε 39.3k14 gold badges79 silver badges99 bronze badges asked Oct 18, 2010 at 14:42 MarkusMarkus 4,0388 gold badges50 silver badges65 bronze badges 2
  • Are you sure s is actually a reference to a <select> element? IE does support the add() method of the options collection. – Tim Down Commented Oct 18, 2010 at 15:30
  • then you should have $("#category") instead of document.getElementById and I thing @fearofawhackplanet first option would be the best. – Diego Commented Oct 18, 2010 at 16:01
Add a ment  | 

4 Answers 4

Reset to default 6

Assuming the element with id "category" is actually a <select>, the easiest way is the the following time-honoured code for adding an option to a select list in any browser:

var s = document.getElementById("category");
s.options[s.options.length] = new Option("Option text", "optionValue");

try

$('#category').append('<option value="foo" selected="selected">Foo</option>');

or

var options = $('#category').attr('options');
options[options.length] = new Option('Foo', 'foo', true, true);

This soulution is working fine under IE8 - copied from MIcrosoft forum -

"I assume you already got the answer you needed, but for anyone else who finds this post when searching this problem (like I did), here's the solution that worked for me. All it took was setting the properties on opt AFTER adding it to the options collection. I also found that MSDN's page on the add function (for the options collection) explicitly states that for IE, the properties must be set after the option is added, but most of the examples I found online don't do it that way. I think your way may have worked in older versions of IE."

var opt = document.createElement('option');  
select.options.add(opt);       
opt.innerHTML = 'Foo';  
opt.value = 'Bar';  

Should the add() call not be on the select element, rather than the collection of options? I.e.:

s.add(select_option);
发布评论

评论列表(0)

  1. 暂无评论