2017-04-08 25 views
0

データ変数に基づいて値を設定(jquery事前選択)して設定します。このリストには、同じ値であるが異なるデータの3つの項目がある。データ属性の値に基づいてオプションを選択する

変数がselectvar = "d"の場合、リストの2つの項目に変更する必要があります。

 <select id="select2"> 
    <option data-id="mo" value="1" style="display: none;">1</option> 
    <option data-id="d" value="1" style="">one</option> 
    <option data-id="h" value="1" style="display: none;">o-ne</option> 
    <option data-id="mo" value="2" style="display: none;">2</option> 
    <option data-id="d" value="2" style="">two</option> 
    <option data-id="h" value="2" style="display: none;">t-wo</option> 
    <option data-id="mo" value="3" style="display: none;">3</option> 
    <option data-id="d" value="3" style="">three</option> 
    <option data-id="h" value="3" style="display: none;">t-hree</option> 
    </select> 

val = 2 
selectvar="d" 
$("#select2 option[data-id='d'][value='2']").prop("selected", true); 
+0

何が意味するのは_それはリストの2つの項目に変更する必要がありますか? –

+0

3つのアイテムがあり、すべて同じ値です。しかし、テキストは異なります。変数selectvarもあります。 selectvar selectの値に応じて、1つまたは1つまたはo-neのいずれかを選択する必要があります。たとえば、selectvarに "d"があるため、コードを実行した後に1を選択する必要があります。正しいコードは何でしょうか? –

答えて

1

コードの下に使用し、あなたの選択にIDを与えます。

$("#select2 option[data-id='" + selectvar + "']").prop("selected", true); 
+0

@ CodeGuyコードを更新しました。 –

+0

私はもう何かを理解しました。これはうまくいきます。私は試した。 –

+0

@ CodeGuyがうまくいけば答えを受け入れます。 –

1

選択した変数を設定してから、選択リストオプションを反復し、データ属性を同じに設定します。

var selectvar = "d"; 
 

 

 
$("#select2 option").each(function(){ 
 
    var id= $(this).attr('data-id'); 
 
    if(id === selectvar){ 
 
     $(this).prop('selected',true); 
 
    } 
 
}) 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="select2"> 
 
    <option data-id="mo" value="1">1</option> 
 
    <option data-id="d" value="2" >one</option> 
 
    <option data-id="h" value="3">o-ne</option> 
 
</select>

+0

ありがとう、短いコードは可能ですか? –

1

$("button").click(function() { 
 
    var selectVal = $("input").val(); 
 
    
 
    $('[data-id="' + selectVal + '"]').prop("selected", true); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select> 
 
    <option data-id="mo" value="1" style="display: none;">1</option> 
 
    <option data-id="d" value="1" style="">one</option> 
 
    <option data-id="h" value="1">o-ne</option> 
 
</select> 
 
Data-id:<input/> <button>Change</button>

関連する問題