如何为每个列表项添加属性

时间:2011-07-09 10:44:06

标签: javascript jquery string sorting height

我有一个看起来像这样的字符串:

.a,.b,.c,.d

我想为每个这样的属性添加一个值 项目

我之前用过这个来为我改变高度的项目添加一个值:

$(this).attr("heightwert", parseInt($(this).css('height')));

我使用此属性进行排序。 但如果你知道我如何按元素的动态高度排序,这也会很棒。

这用于排序:

onclick="$('ul.dataa>li').tsort('a',{attr:'heightwert',order:'desc'});"

1 个答案:

答案 0 :(得分:1)

这是假设.a,.b,.c,.d是对页面上元素的类名的引用而写的,虽然阅读我发布此答案之后的评论但我不确定这是否确实, 案子。然而,根据我最初的假设,以下似乎做了(我想)你问的问题:

$('.a, .b, .c, .d').attr('data-heightwert', function(i, val) {
    return $(this).height();
});

JS Fiddle demo

请注意,我使用的是属性data-heightwert,而不仅仅是heightwert,因为这将是html元素的无效属性,而data-前缀允许元素为由开发人员根据需要分配/创建并保留代码的有效性。不可否认,这是在HTML 5下,但它向后兼容html 4.x,并且在最坏的情况下,与在这种文档类型中简单地使用heightwert一样有效。

此演示中:hover上显示的元素的高度由CSS报告,并取自jQuery设置的data-heightwert元素。

参考文献: