我需要从属性中设置元素的背景颜色。目前我正在尝试:
$( '[myAttr]' ).css( 'background-color', $( this ).attr( 'myAttr' ) );
但是$( this ).attr( 'myAttr' )
返回未定义。
有办法做到这一点吗?
答案 0 :(得分:1)
在您的示例中,this
未引用[myAttr]
元素,因为没有范围。
您可以传递一个匿名函数(以便您可以访问this
),并返回属性值:
$('[myAttr]').css('background-color', function () {
return $(this).attr('myAttr');
});
答案 1 :(得分:0)
this
在回调之外无关紧要。做这样的事......
$('[myAttr]']).each(function() {
$(this).css('background-color', $(this).attr('myAttr'))
})
答案 2 :(得分:0)
this
可能没有引用该元素。试试如下。
var elm = $('[myAttr]');
elm.css('background-color', elm.attr('myAttr'));