Jquery 如何为attr方法设置第二个参数?

Jquery 如何为attr方法设置第二个参数?,jquery,html,Jquery,Html,我有一个jquery代码,如下所示 $(文档).on('click','ajax',函数(e){ e、 预防默认值(); var getUrl=$(this.attr('href'); var myData=$(this.data(); var data=new FormData(); 用于(myData中的var i){ data.append((i.replace(“记录”),myData[i]); } reModal(getUrl,数据); });不能传递带有attr名称的正则表达式。因

我有一个jquery代码,如下所示

$(文档).on('click','ajax',函数(e){
e、 预防默认值();
var getUrl=$(this.attr('href');
var myData=$(this.data();
var data=new FormData();
用于(myData中的var i){
data.append((i.replace(“记录”),myData[i]);
}
reModal(getUrl,数据);

});
不能传递带有
attr
名称的正则表达式。因此,要么您必须检查元素存在的
attr
,然后选择该元素

像这样的

 var getUrl = $(this).attr('href') ? $(this).attr('href') : $(this).attr('data-href');
甚至更短

var getUrl = $(this).attr('href') || $(this).attr('data-href');

attr的第二个参数必须是计算为值的参数,该值将被设置为参数

如果要同时设置这两个属性,可以链接方法,如下所示:

$(this).attr('href','one').attr('data-href','another');
如果两者都需要,只需分别查询它们,例如查询到数组中:

var getUrl = [$(this).attr('href'),$(this).attr('data-href')];
当其中一个属性可以具有NULL值且具有某种优先级时,可以使用
|
运算符获取第一个非NULL值:

var getUrl = $(this).attr('href') || $(this).attr('data-href');

通过将第二个属性传递给数据,可以获得第二个属性,如:

var getUrl = $(this).attr('href') ? $(this).attr('href') : $(this).data('href');
如果您想访问
href
使用:

对于
数据href
您可以使用:

var href = $(this).attr('data-href');

OR

var href = $(this).data('href');

$(this.attr('data-href')
为什么不呢?我看到不止一个attr(“href”);在anchor和div中,但href参数在div中无效,这就是为什么我必须使用jquery进行操作,而不是使用数据更改所有href hrefgreat工作!谢谢你,if条件有那么短吗?是的,称为三元运算符。更简洁的编写方法是
var getUrl=$(this.attr('href')| |$(this.attr('data-href')
var href = $(this).attr('data-href');

OR

var href = $(this).data('href');