【问题标题】:JQuery getting text of select results in a repeating valueJQuery获取选择文本导致重复值
【发布时间】:2011-06-14 18:16:30
【问题描述】:

我有一个显示如下的下拉列表:

 <li class="row" recordid="15">
 <!--...code...-->
 <p class="departments">
 <select name="department" id="department">
     <option value="null">Select A Department</option>
     <option value="1">Graphic Design</option>
     <option value="2">Photography</option>
     <option value="3">Advertising</option>
     <option value="4">Custom Promotions</option>
<select>
</p>
<!--more code-->
</li>

当我尝试获取当前选择的选择时,它会记录两次(这是通过单击按钮来确认对行的编辑):

 $(".confirmEdit").live('click', function() { 

//get row id
var dbid = $(this).parent().attr("recordid");

//user
    var thisuser = "AUser";

//get values
var department = $("#department").val();
var deptDisplay = $("#department option[value='" + department + "']").text();
console.log(deptDisplay);
    //...
 });

如果选择了图形设计,我的结果是图形设计图形设计。我是不是把数据弄错了?这可能是一个错误吗?我正在动态构建下拉列表(使用一些 PHP/AJAX/JS mojo),但索引和文本看起来不错。

【问题讨论】:

  • 你的 id 是复数 departments,但你引用它是单数 department
  • 谢谢,这只是我的一个错字(因为选择是动态构建的,所以我只是在此页面上编写了 html)- 它应该是单数。

标签: jquery select text


【解决方案1】:

我不知道你为什么会得到两次,但要获得所选&lt;option&gt;text,只需像这样使用selected-selector(docs)

var deptDisplay = $("#departments option:selected").text();

或者这个没有 jQuery:

var depts = document.getElementById('departments');
var deptDisplay = depts.options[ depts.selectedIndex ].text;

【讨论】:

  • @Pruitlgoe:如果有帮助,请记住单击此答案左侧的大复选标记。谢谢。 :o)
  • 我不能,因为接受答案有时间延迟,我要下班了。今天早上第一件事就是照顾它。
猜你喜欢
  • 2013-07-04
  • 1970-01-01
  • 2013-07-15
  • 2015-03-04
  • 1970-01-01
  • 2011-10-06
  • 1970-01-01
  • 1970-01-01
  • 2013-12-21
相关资源
最近更新 更多