0

我想在加载页面时将 cookie 值直接加载到具有特定类的所有 html 字段。我创建了一个与字段 ID 同名的 cookie。

这样做是行不通的。

$(".class").val(function(){
    el=$(this);
    id=el.attr("id");
    cookie_val=$.cookie(id);
    el.val(cookie_val);
});

任何的想法?

4

2 回答 2

0

将函数传递给jQuery 的.val()方法时,函数应返回所需的值。

正如您的代码所代表的那样,您的函数正在运行,它确实设置了值。然后它返回undefined,然而,这将它设置为空。

这应该有效:

$('.class').val(function () {
    return $.cookie($(this).attr('id'));
});

或者,您可以使用.each()让您的函数进行值设置而无需返回:

$('.class').each(function () {
    var el = $(this);
    el.val($.cookie(el.attr('id')));
});

FWIW,我写了一个 cookie 库,它为这个功能提供了 jQuery 插件(用同名 cookie 保存的值填充一个字段)。

于 2013-01-31T18:19:24.937 回答
0

here´s a function you can send the parameter/cookiename and return value

function findnameGetvalue(n){
    a = document.cookie;
    while(a != ''){
        cookiename = a.substring(0,a.search('='));
        cookievalue = a.substring(a.search('=')+1,a.search(';'));
        if(cookievalue == cookiename+'='){
            cookievalue = a.substring(a.search('=')+1,a.length);
        }
        if(cookiename == n){ // if found return value
            return cookievalue;
        }
        i = a.search(';');
        if(i == -1){ // not found do stuff
            i = a.length
        }
        else{
            i += 2;
        }
        a = a.substring(i,a.length);
    }
}
于 2013-01-31T18:19:36.163 回答