2016-04-05 34 views
3
<option value="abc">abc</option> 

Ben $('select').val('abc') yapabileceğini biliyorum ama buSeç seçenek taban

<option value='{"name":abc,"id":123}'>abc</option> 

gibi bir şey nasıl id üzerinde abc tabanını seçerim varsa?

+0

kullanabilirsiniz, 'veri name' ve' verileri-id' niteliklerini seçenekleri arasında döngü gerekir ve value' 'olarak Nesnesi'' tutmanın yerine seçilen özelliğini –

+4

ayarlayın. .ve kullanın $ ('option ["data-id = 123"]') ' – Rayon

cevap

0

value geçerli bir nesne değildir. abc tırnak içine alınmalıdır.

<option>

için value özellik nesnesi benzeri dizge içinde 123 olarak id sahip alkil'i <option> elemanları filtrelemek için filter() kullanabilir

<option value='{"name":"abc","id":123}'>abc</option> 
        ^^

olmalıdır. Seçilen seçenek olarak ayarlamak için filtrelenmiş option numaralı telefondan prop('selected', true)prop('selected', true) . Rayon gibi


// Filtering all options in the select 
 
$('select option').filter(function() { 
 
    var val = $(this).val(), // Get value 
 
     obj = {}; 
 

 
    // Try to parse the string to JSON 
 
    try { 
 
     obj = JSON.parse(val); 
 
    } catch (e) { 
 
     obj = {}; // Empty object if parsing fails 
 
    } 
 

 
    // Filter based on the `id` in the value 
 
    return obj.id === 123; 
 
}).prop('selected', true); // Set the option as selected
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<select> 
 
    <option value="Hello">fdsafds</option> 
 
    <option value='{"name":"abc","id":123}'>abc</option> 
 
</select>

Demo:

yerine değer olarak nesneyi kullanmak yerine, commented vardır, ben data-* özel öğede verileri depolamak için niteliklerini HTML5 kullanmak tavsiye edeceğiz.

$('option[data-id="123"]').prop('selected', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<select> 
 
    <option value="Hello" data-name="bond" data-id="007">fdsafds</option> 
 
    <option value="something" data-name="abc" data-id="123">abc</option> 
 
</select>