如何编辑以下代码,以便使用数据属性来使其正常工作?这是因为在我的示例中,两个下拉列表的值将不同,所以我想将它们与其他内容(例如数据属性)链接起来。

<select name="" id="" class="select">
    <option value="">Select</option>
    <option value="1">Value 1</option>
    <option value="2">Value 2</option>
</select>
<select name="" id="" class="select">
    <option value="">Select</option>
    <option value="1">Value 1</option>
    <option value="2">Value 2</option>
</select>


$(function () {
    var select = $('select.select');
    select.change(function () {
        select.not(this).val(this.value);
    });
});

最佳答案

这应该可以工作(通过数据属性同步列表):

<select name="" id="" class="select">
    <option data-id='1' value="">Select</option>
    <option data-id='2' value="1">Value 1</option>
    <option data-id='3' value="2">Value 2</option>
</select>
<select name="" id="" class="select">
    <option data-id='1' value="5">Select</option>
    <option data-id='2' value="3">Value 1</option>
    <option data-id='3' value="4">Value 2</option>
</select>


(function () {
    var select = $('select.select'), opt, dataAttr;
    select.change(function () {
        dataAttr = $(this).find(':selected').data('id');
        select.not($(this)).each(function(){
           if (opt = $(this).find('[data-id='+ dataAttr +']')){
               $(opt).prop('selected', true);
           }
        });
    });
})();

09-12 08:06