GitHub 博客园 Nanakon

Hooks

function getValType(elem) {
    var ret = elem.tagName.toLowerCase()
    return ret === "input" && /checkbox|radio/.test(elem.type) ? "checked" : ret
}
var valHooks = {
    "select:get": function(node, value) {
        console.log('select:get')
    },
    "select:set": function(node, values, optionSet) {
        console.log('select:set')
    }
}

function val(node, value) {
    var get = arguments.length === 1
    var access = get ? ":get" : ":set"
    var fn = valHooks[getValType(node) + access]
    if (fn) {
        fn(node, value)
    } else if (get) {
        return node.value
    } else {
        node.value = value
    }
}

val(document.querySelector('select'))
val(document.querySelector('input'), 2)

 

posted on 2016-12-09 16:54  jzm17173  阅读(85)  评论(0)    收藏  举报

导航

轻音