javascript - 如何为跨度实现 jQuery val()?

原文 标签 javascript jquery dom jquery-plugins html

我有一些按跨度分组的选择元素。我正在创建一个插件来与元素进行一些交互。现在我想给我的用户的支持val()函数,以便他们能够获取或设置我的跨度的“值”。设置该值将导致选择框元素发生变化,获取该值将导致添加选择框值。

基本上我希望我的插件添加对 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>

挑战
获取以下代码以工作:$('#test').val('1:1');$('#test').val() .

最佳答案

这不是一个完整的插件,我没有覆盖 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());
});

您可以在 http://jsfiddle.net/QBSWm/1/ 试用

关于javascript - 如何为跨度实现 jQuery val()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5895342/

相关文章:

javascript - 序列化 DOM 元素,包括所有 CSS 属性

javascript - 无法创建自动填充数组,而无需手动编写

javascript - 如果值为0,则从数组中的对象中删除属性

javascript - WinJS,脚本控制绑定(bind)的数据-win-bind?

javascript - 移动到最后一个 li 时返回第一个 li(使用 Jquery Scroll To Next)

javascript - 表格多列过滤器

java - 使用DOM解析器Java解析带有嵌套重复元素名称的xml文档。

javascript - 强制 Safari 重新绘制DOM

javascript - Angular 2/4 |类型“{}”不可分配给类型“对象[]”

javascript - 保持图片静止不动,因为位置相对于附近的文字