2014-12-01 126 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'}); 
})