0

アラートでインデックス、値、およびテキストをアラートしようとしています。

私はこのコードを持っています:

$(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>
4

2 に答える 2

0

選択すると構造が再構築されるため、マップ関数は情報を返さないと思います。それをデバッグできます

console.dir(doai)

たとえば、chrome と ff では、値が返されないことがわかります。選択されたマークアップがどのように再構築されるかを要素インスペクターで確認してください。入力を変更するための独自のイベントリスナーさえあると思います。

次のように選択した値を取得してみてください。

    var  storename = $.map( $(this).find("option:selected").val(), function(n){
          return this.value;
   });
于 2013-10-15T17:17:02.243 に答える
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);
于 2013-10-15T19:40:37.433 に答える