1

我有一些跨度标签:

<span w="560"></span>
<span w="340"></span>
<span w="120"></span>

使用 jQuery,我想选择每个跨度,获取其 w 属性中的值并将其设置为该值 +“px”。

我有一个不起作用的简单代码:

$(document).ready(function(){

    $('span').animate({width: $(this).attr('w') + 'px'}, 2000);

});

有什么建议么?

谢谢。

4

2 回答 2

3

在没有上下文的情况下没有任何意义。

使用$.each loop并且您的代码应该可以工作,因为将引用迭代中的当前跨度

$('span').each(function() {
    $(this).animate({width: $(this).attr('w') + 'px'}, 2000);
  });

更新

正如adeneo建议的那样,您的 HTML 在使用自定义属性时不会被验证。在它前面加上数据,以便您的 HTML 也将被验证。

<span data-w="560"></span>

要访问它,您可以使用

$(this).data('w'); 或者 $(this).attr('data-w')

于 2012-11-07T22:57:53.797 回答
2

使用有效的属性,例如 data-w:

<span data-w="560"></span>
<span data-w="340"></span>
<span data-w="120"></span>

并遍历元素

$(document).ready(function(){

    $('span').each(function(idx, elm) {
        $(elm).animate({width: $(elm).data('w')}, 2000);
    });

});
于 2012-11-07T22:58:47.257 回答