如何实现跨度的jQuery val()?

Kee*_*ker 6 html javascript jquery dom jquery-plugins

我有几个按范围分组的选择元素.我正在创建一个插件来与元素进行一些交互.现在我想为我的用户提供该val()功能的支持,以便他们能够获得或设置我的跨度的"值".设置该值将导致select元素元素发生更改,获取该值将导致添加selectbox值.

基本上我想我的插件添加对该val()方法的支持.有关如何实现这一点的任何想法?


<span id="test">
    <select id="one">
        <option value="1">1</option>
        <option value="2">2</option>
    </select>
    <select id="two">
        <option value="1">1</option>
        <option value="2">2</option>
    </select>
</span>
Run Code Online (Sandbox Code Playgroud)

Challange
获取以下代码:$('#test').val('1:1');$('#test').val().

Dan*_*elB 2

这不是一个完整的插件,我没有覆盖val(),但它应该做你想要的。

$.fn.value = function(value) {
    if (value) {
        var s = value.split(':');
        for ( var i = 0; i < s.length; i++ ) {
            this.find('select').eq(i).val(s[i]);
        }
    } else {
        var result = [];
        this.find('select').each( function( index, item ) {
            result.push($(item).val());
        });

        return result.join(':');

    }
}

$(function() {
    $("#test").value("2:2");
    alert($("#test").value());
});
Run Code Online (Sandbox Code Playgroud)

你可以在http://jsfiddle.net/QBSWm/1/尝试一下