2014-12-01 141 views
-1

我這裏有一個選擇選項,並有選擇期權價值的相同內容的一個div亮點DIV取決於選擇框值

<select> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
</select> 

<div id="textvalue"> 
<div>1</div> 
<div>2</div> 
<div>3</div> 
<div>4</div> 
</div> 

我想要做的是,每當我點擊選擇選項1,下面的div具有相同的文字將突出顯示,

有人可以幫助我如何在jquery上編碼嗎? 謝謝!

+0

你嘗試過什麼嗎? – j08691 2014-12-01 15:37:12

回答

2

您可以使用CSS類將「高亮」樣式應用於元素。從#textvalue中的所有元素中刪除該類,然後過濾出包含所選值的<div>。你可以將課程添加回去。

將所有這些放在change事件處理程序中,以在您更改<select>時調用該功能。

(選用)觸發change事件您<select>在頁面加載,調用該函數:

$('select').on('change', function(){ 
    $('#textvalue div').removeClass('highlight').filter(':contains('+this.value+')').addClass('highlight'); 
}).change(); 

JSFiddle


如果<div>值不是不同的,你將不得不去關於使用.filter()不同的方式:

$('select').on('change', function(){ 
    var value = this.value; 
    $('#textvalue div').removeClass('highlight').filter(function(){ 
     return this.innerHTML == value; 
    }).addClass('highlight'); 
}).change(); 

JSFiddle

+0

如果值不明確,使用':contains'可能會出現問題。在這個小提琴中選擇4:http:// jsfiddle。net/j08691/ugpfqg5x/3/ – j08691 2014-12-01 15:42:21

+0

感謝您的回答,是的,我認爲這會導致問題,如果我有像31-39 – labli 2014-12-01 15:47:35

+0

值很高興有幫助,你看到我更新的解決方案?感謝@ j08691的指針。 – George 2014-12-01 15:49:23

1

您可以使用jQuery:(DEMO

$('#textvalue > div').each(function() { 
var text = $(this).text(); 
$(this).attr('data-tx', text); 
}); 

$('select').on('change', function() { 
var selected = $(this).find(':selected').html(); 
$('#textvalue').find('div[data-tx=' + selected + ']').css({'background-color':'red'}); 
})