按索引警告相关的选项值和文本

时间:2013-10-15 17:00:13

标签: jquery

我正在尝试提醒警报中的索引,值和文本。

我有这段代码:

$(document).ready(function() {
  $('#idea_store_ids').chosen().change(function(){
      var doai = $(".search-choice-close").map(function(){
      return $(this).attr("data-option-array-index");}
  ).get();
  $.each(doai , function(index, value) { 
    var storename = $("#idea_store_ids option").map(function() {
             return $(this).text();
          }).get();
    alert(index + ": " + value + ": " + storename); 
  });
  });
});

但是我很难获得只显示的相关选项名称。它显示了所有这些。我认为这是因为没有任何关于#idea_store_ids选项和" data-option-array-index"知道哪个属于什么。所以我想知道将这两个选择器编入索引并将其关联起来是一个好主意。

我该怎么做?

HTML:

<input type="hidden" value="" name="idea[store_ids][]"></input>
<select id="idea_store_ids" name="idea[store_ids][]" multiple="multiple" style="display: 
none;">

<option value="103">4 Wheeling Shirts-To-Go</option>
<option value="79">Aliens & Paranormal Shirts-To-Go</option>
<option value="63">America Shirts-To-Go</option>
<option value="2" selected="selected">Ann Arbor T-shirt Company</option>
<option value="19">Area Code Shirts To Go</option>....


<ul class="chosen-choices">
<li class="search-choice">
    <span> … </span>
    <a class="search-choice-close" data-option-array-index="3"></a>
</li>

2 个答案:

答案 0 :(得分:0)

我认为选择重建您的结构,因此您的地图函数不返回任何信息,您可以使用

进行调试

console.dir(doai)

例如在chrome和ff上你可以看到没有返回任何值,请注意元素检查器如何选择重建标记我认为它甚至有自己的eventlistener来改变输入

尝试获取所选的值,如:

    var  storename = $.map( $(this).find("option:selected").val(), function(n){
          return this.value;
   });

答案 1 :(得分:0)

只需在change

中执行此操作即可
alert(this.selectedIndex + ": " + this.value + ": " + $(this).find("option:selected").text()); 

或者:

var index = this.selectedIndex,
    value = this.value,
    text  = $(this).find("option:selected").text();

alert(index + ":" + value + ":" + text);