2016-04-21 109 views
0

我有这样两个元素:如何同步数据属性和选择框值?

<select id="data"> 
    <option value=1>hoge</option> 
    <option value=2>fuga</option> 
    <option value=3>hogehoge</option> 
</select> 

<a href="#1" data-id="1">hoge</a> 
<a href="#2" data-id="2">fuga</a> 
<a href="#3" data-id="3">hogehoge</a> 

如果我挑上选择框霍格,我想数据-ID =“1”将被选择并做一些东西(变化的背景等)使用jQuery。 如果我点击a[data-id="3"],选择框选项'hogehoge'将被选中,反之亦然。

任何帮助,将不胜感激。

+0

人使用'$(一).attr( “数据ID”)' – uzaif

+0

读取数据的属性,并设置选择的值。 – epascarello

回答

1

看一看在点击收听的最后一行。您可以触发对将调用相应侦听器而不是重复代码的元素的更改。

$(function() { 
 
    
 
    $("#data").on("change", function() { 
 
    $("a").removeClass("active"); // remove active class from all <a> 
 
    $("a[data-id='" + $(this).val() + "']").addClass("active"); // add active class to link with corresponding data-id 
 
    }); 
 
    
 
    $("a").on("click", function() { 
 
    $("#data option[value='" + $(this).data("id") + "']").prop("selected", true); // change the selected value 
 
    $("#data").trigger("change"); // trigger change on #data to keep active link synced 
 
    }); 
 
    
 
});
.active { 
 
    background-color: cornflowerblue; 
 
    color: white; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<select id="data"> 
 
    <option value=1>hoge</option> 
 
    <option value=2>fuga</option> 
 
    <option value=3>hogehoge</option> 
 
</select> 
 

 
<a href="#1" data-id="1" class="active">hoge</a> 
 
<a href="#2" data-id="2">fuga</a> 
 
<a href="#3" data-id="3">hogehoge</a>

+0

非常感谢。它的作品和超级流畅! – Kazuaki

0
$(document).ready(function(){ 
    $('a').click(function(){ 
     var id = $(this).data('id'); 
     $('#data').find('option[value='+id+']').prop('selected',true); 
    )}; 
)}; 

我实现了功能的jsfiddle https://jsfiddle.net/dphf267u/