jQuery:获取自定义属性的值 [英] jquery: get value of custom attribute

查看:671
本文介绍了jQuery:获取自定义属性的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

html5在input[type=text]元素上支持占位符属性,但是我需要处理不兼容的浏览器.我知道那里有一千个用于占位符的插件,但我想创建第1001个插件.

html5 supports the placeholder attribute on input[type=text] elements, but I need to handle non-compliant browsers. I know there are a thousand plugins out there for placeholder but I'd like to create the 1001st.

我能够获取input[placeholder]元素的句柄,但尝试获取占位符属性的值将返回未定义-$("input[placeholder]").attr("placeholder").

I am able to get a handle on the input[placeholder] element but trying to get the value of the placeholder attribute is returning undefined - $("input[placeholder]").attr("placeholder").

我正在使用jquery 1.6.2

I'm using jquery 1.6.2.

这是 jsfiddle .我修改了代码,使其可在html5兼容的浏览器中工作,仅用于测试目的.

Here is the jsfiddle. I modified the code to work in a browser that is html5 compatible just for testing purposes.

html

<input type="text" name="email" size="10" placeholder="EMAIL ADDRESS">

jquery

function SupportsInputPlaceholder() {
    var i = document.createElement("input");
    return "placeholder" in i;
}

$(document).ready(function(){
    if(!SupportsInputPlaceholder()) {
        //set initial value to placeholder attribute
        $("input[placeholder]").val($("input[placeholder]").attr("placeholder"));

        //create event handlers for focus and blur
        $("input[placeholder]").focus(function() {
            if($(this).val() == $(this).attr("placeholder")) {
                $(this).val("");
            }
        }).blur(function() {
            if($(this).val() == "") {
                $(this).val($(this).attr("placeholder"));
            }
        });
    }
});

感谢所有帮助, B

推荐答案

在这里您需要某种形式的迭代,因为val(除了使用函数调用时)仅适用于第一个元素:

You need some form of iteration here, as val (except when called with a function) only works on the first element:

$("input[placeholder]").val($("input[placeholder]").attr("placeholder"));

应为:

$("input[placeholder]").each( function () {
    $(this).val( $(this).attr("placeholder") );
});

$("input[placeholder]").val(function() {
    return $(this).attr("placeholder");
});

这篇关于jQuery:获取自定义属性的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆