未设置属性时,jquery获取属性值

时间:2011-10-07 15:53:26

标签: jquery

我只想获取字段属性的当前值。

此字段的默认值如下:

<input validation="defaultValue" />

当我想获得验证属性时,我不知道它是否已经更新过,或者它是否仍然是默认值。

因此,当属性未设置(尚未更新)时,属性将使用prop()返回undefined,并且attr()方法始终返回默认值(实际上并非如此)可维护性,但将来会是这样。)

是否有检查方法:

如果属性设置=&gt;归还财产 else返回属性

由于

1 个答案:

答案 0 :(得分:4)

此代码段将执行:

var input = $("input");
var method = typeof input.prop("validation") != "undefined" ? "prop" : "attr";
input[method]("validation");

//Shortened to:
var input = $("input");
input[typeof input.prop("validation")!="undefined"?"prop":"attr"]("validation");

说明:

  • 如果未设置属性typeof ... "undefined",则返回"prop"字符串。否则,"attr"字符串将返回。
  • 此字符串用于选择input对象的正确方法,input["prop"](= input.prop)或input["attr"](= input.attr)。
  • 最后,调用该方法,将"validation"作为参数传递,结果为:
    1. 属性(如果存在)
    2. 属性(如果属性不存在)。

我建议使用data-validation代替validation,以符合HTML5标准。

更新:JQuery方法:

(function($){
    /* Defines the curProp method - Getting the current property
     * When the property exists, the prop method is used. Otherwise: attr */
    $.fn.curProp = function(name){
        return this[typeof this.prop(name) == "undefined" ? "attr" : "prop"](name);
    }
})(jQuery);