根据当前属性值更改属性字符串

Altering attr string based on current attr value

本文关键字:属性 字符串      更新时间:2023-09-26

我有一个用于扩展的组合框侦听器。展开后,它会对组合框选项中具有特定类的每个元素执行一些样式。所需的更改之一是基于当前属性的值对属性进行更改。使用 this 返回未定义。

expand   : function(combo) {
  $('.status-0').addClass('greyed-out');
  $('.status-0').attr('attrname', $(this).attr('attrname') + ' is status 0');
}

我希望每个带有.status-0的元素都附加其属性字符串"is status 0"。该属性是 ExtJS 工具提示,但解决方案应适用于任何属性类型。

你需要使用 $.attrfunction重载,它接受一个function,它将接收两个参数,索引和属性值。 this将引用元素。但是我们在这里不需要它,因为我们只能使用传递的属性值。

$('.status-0').attr('attrname', function(_, attrVal){
     return attrVal + ' is status 0';
});