我需要使用jQuery获取2个属性,并根据应用程序的状态更改其中的值。
$(this).attr('id', function (i, val) {
return val.replace('More', 'Less');
});
上面的代码很完美,它可以满足我的需要。 但我需要这样的事情:
$(this).attr('id, theOtherAttr', function (i, val) {
return val.replace('More', 'Less');
});
HTML看起来像这样:
<a href="javascript:void(0)" id="BAMS_Q1_See_More_Clover_Station" theOtherAttr="BAMS_Q1_See_More_Clover_Station"></a>
有什么建议吗?
答案 0 :(得分:1)
请看一下这段代码,因为这样的东西应该有效:
$(this).attr('id', myFunc).attr('theOtherAttr', myfunc)
使用额外功能:
function myfunc(parameter1, parameter2) {
// do stuff
} ;
注意:您始终可以使用.attr()
方法添加多个属性:
.attr({
parameter1:"...",
parameter2:"..."
});
所以在你的情况下,这样的方法将是正确的方法:
$("*").attr('id', function(i, value) {
var attribute1 = value
var attribute2 = $(this).attr('secondattribute');
return ""
});
答案 1 :(得分:1)
您可以使用$(this)
选择器设置并获取函数内的第二个属性。
$("a").attr('id', function(i, val) {
console.log(val); //First attribute
let attr2 = $(this).attr('theOtherAttr'); //Getting the 2nd attr
console.log(attr2);
//Do your process with val and attr2
//Return to change the `id` attr
return val.replace('More', 'Less');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="javascript:void(0)" id="BAMS_Q1_See_More_Clover_Station" theOtherAttr="BAMS_Q1_See_More_Clover_Station_theOtherAttr"></a>
如果2个属性相同,则可以
$("a").attr("id", function(i, val) {
//Set both
$(this).attr({
id: val.replace('More', 'Less'),
theOtherAttr: val.replace('More', 'Less')
});
console.log( "id - ", $(this).attr("id") );
console.log( "theOtherAttr - ", $(this).attr("theOtherAttr") );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="javascript:void(0)" id="BAMS_Q1_See_More_Clover_Station" theOtherAttr="BAMS_Q1_See_More_Clover_Station"></a>