Dim*_*kiy 66 javascript jquery
我有以下示例:
<input type="text" class="input1" value="bla"/>
有没有办法检查这个元素是否存在并且在一个语句中有值?或者,至少,任何更短的东西
if($('.input1').length > 0 && $('input1').val() != '')
这里只有一英里长的条件让你感到沮丧.
Bri*_*ian 127
如果输入不存在,则输入将没有值.试试这个...
if($('.input1').val())
Cur*_*urt 25
你可以这样做:
if($('.input1').length && $('.input1').val().length)
lengthfalse在值为的时候评估条件0.
97l*_*ave 13
你可以这样做:
jQuery.fn.existsWithValue = function() { 
    return this.length && this.val().length; 
}
if ($(selector).existsWithValue()) {
        // Do something
}
只是为了它,我在jQuery代码中跟踪了这一点..val()函数当前从attributes.js的第165行开始.这是相关部分,带有我的注释:
val: function( value ) {
    var hooks, ret, isFunction,
        elem = this[0];
        /// NO ARGUMENTS, BECAUSE NOT SETTING VALUE
    if ( !arguments.length ) {
        /// IF NOT DEFINED, THIS BLOCK IS NOT ENTERED. HENCE 'UNDEFINED'
        if ( elem ) {
            hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
            if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
                return ret;
            }
            ret = elem.value;
            /// IF IS DEFINED, JQUERY WILL CHECK TYPE AND RETURN APPROPRIATE 'EMPTY' VALUE
            return typeof ret === "string" ?
                // handle most common string cases
                ret.replace(rreturn, "") :
                // handle cases where value is null/undef or number
                ret == null ? "" : ret;
        }
        return;
    }
所以,你要么得到undefined或者""或者null- 所有这些在if语句中都被评为false.
| 归档时间: | 
 | 
| 查看次数: | 206604 次 | 
| 最近记录: |