javascript - 通过 jquery 失败循环遍历下拉列表中的所有项目的逻辑

标签 javascript jquery ajax

我需要一种方法通过代码循环遍历下拉列表中的所有选项,并将每个选项与变量进行比较。如果它们匹配,我想让匹配值成为下拉列表中选择的项目,然后退出循环。 到目前为止,这就是我想出的……就循环项目而言,它是有效的。

$("#domains > option").each(function() {
  if (edit_domain[1] == $(this).val()) {
    //assign this as being the selected value in dropdown
    //exit loop                                   
  }
});

编辑 1

我将代码更改为如下所示:

 //loop through values in drop down to see if we find a match
 $("#domain  option").each(function() {
          var $this=$(this);
          alert($(this).val());
          if ($this.val() == edit_domain[1] ) {
             console.log("compared");
             $("#prefix").val(edit_domain[0]);
             $("#domain").val(edit_domain[1]);
           }
   });

当我刷新页面时,我没有收到任何错误消息,但循环内的逻辑似乎都不起作用。控制台中没有警报,也没有消息。作为测试,我通过 F12 打开调试工具。在控制台中,我手动输入以下命令:

$("#domain  option").each(function() {
alert($(this).val());
 });

它正确返回下拉框中的所有值。 我不确定我的代码哪里出错了!有趣的是,当我在 IE 中测试时,我确实看到以下关于声明/创建下拉框的 HTML 代码行的错误消息:

HTML1402: Character reference is missing an ending semicolon ";".

HTML 代码如下所示:

<tr><td width="30%">Cell Carrier: (e.g.AT&T)</td><td><select class="form-control" name=domain id=domain></select></td></tr>

这会是一个问题吗?如果我的 html 很糟糕,我认为查询数据库然后填充下拉列表的 ajax 代码根本不起作用。但确实如此......这只是在填充下拉列表后查询下拉列表中的值的逻辑失败了。

最佳答案

使用 jQuery 时,可以使用.val()功能:

$("#domains").val(edit_domain[1]);

关于javascript - 通过 jquery 失败循环遍历下拉列表中的所有项目的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29758364/

相关文章:

jquery - IE9奇怪位置修复问题

javascript - 如何确保可以从 IE 的新窗口中读取 cookie?

javascript - Angular JS - View 不起作用

javascript - Bluebird 取消等待

php - 本地化:子域、目录或域

javascript - 将工作的 Ruby on Rails 表单转换为 AJAX

jquery - 如果 URL 包含阿拉伯字符,Ajax 在 IE 中不起作用

Javascript 问题 : about variable definition

javascript - Skrollr 在 IOS 中不起作用,尽管我已经用 Skrollr Body 包裹了 body

ajax - HttpClient Angular 5 不发送请求