3

我正在使用localStorage将 CSS 信息保存在某些<div>'s 上。当用户修改其中一个时<div>,它会设置一个localStorage具有以下语法的项目:

ID OF ELEMENT + "-" + x,y, or z (for the different CSS attributes)

因此,div 的 x 坐标项的示例#two是:

two-x

这些设置工作正常,我可以通过在页面加载时执行以下操作来反映这一点:

$(".drag").css({
"left" : localStorage.getItem("two-x"), 
"top" : localStorage.getItem("two-y"),
"z-index" : localStorage.getItem("two-z"),
});

该页面上会有很多 div,我无法对它们中的每一个进行硬编码。所以,这让我想到了我的问题......我怎样才能获得页面上的所有 ID,将它们分配给一个变量,然后更改每个 ID 的 CSS,直到它们都被考虑在内?

我对此的尝试:

var idtwo = [];
$("body").find("div").each(function(){ idtwo.push(this.id); });
$(".drag").css({
            "left" : localStorage.getItem(idtwo + "-x"), 
            "top" : localStorage.getItem(idtwo + "-y"),
            "z-index" : localStorage.getItem(idtwo + "-z"),
});

唯一的问题是输出idtwoone,two(当页面上有两个 div 的 ID 为 1 和 2 时),它需要只是one,运行 CSS 更改,然后two,运行 CSS 更改。

4

2 回答 2

5

希望这可以帮助。

$('div[id]').each(function() {
    var id = $(this).attr('id');
    $(this).css({
        'left': localStorage.getItem(id + '-x'), 
        'top': localStorage.getItem(id + '-y'),
        'z-index': localStorage.getItem(id + '-z')
    });
});
于 2012-09-09T03:49:16.737 回答
3

试试这个(未经测试):

$('div', document.body).each(function () {
    var id = $(this).prop('id');

    if (id) {
        $(this).css({
            'left': localStorage.getItem(id + '-x'), 
            'top': localStorage.getItem(id + '-y'),
            'z-index': localStorage.getItem(id + '-z')
        });
    }
});
于 2012-09-09T03:47:44.337 回答