JQuery: 通过. attr() ; 方法添加两个属性

编辑:

我了解到使用 _blank以外的其他值,在移动浏览器上打开新窗口/标签页不起作用。

For example, if you need to open a new window/tab:

  • 这对所有浏览器都适用,甚至是移动浏览器: target="_blank"

  • 这在移动浏览器上不起作用,但在桌面浏览器上起作用: target="new"

--

虽然这个方法可行,但我不确定是否有更好的方法,或者我得到它的方法是否是正确的/唯一的方法。

基本上我所做的就是将所有的 target="_new"或者 target="_blank"属性值替换成 target="nw",这样只有一个新窗口是打开的,并且在其中所有其他的新窗口都会打开,这样用户就不会被多个窗口淹没。

我还添加了一个“ Opens in a new windowtitle=""属性。

所以我创造的解决方案是这样的:

$("a[target='_blank'], a[target='_new']").attr('target','nw').attr('title','Opens in a new window');

注意这两个 .attr();方法。

这是向一个元素添加两个属性的正确方法吗?

我试过 .attr('target','nw','title','Opens in a new window'),但没用。

我问这个问题的原因是因为 DYR (不要重复自己)原则,所以如果我可以改进我的代码,很好,如果不是,那么它就是它。

谢谢。

178907 次浏览

应该有效:

.attr({
target:"nw",
title:"Opens in a new window",
"data-value":"internal link" // attributes which contain dash(-) should be covered in quotes.
});

Note:

在设置多个属性时,属性名称周围的引号是可选的。

警告 : 在设置“ class”属性时,必须始终使用引号!

来自 。 atr的 jQuery 文档(2016年9月) :

如果尝试更改通过 document.createElement ()创建的 input 或按钮元素的 type 属性,将在 Internet Explorer 8或更早的元素上引发异常。

编辑 :
以备将来参考。 对于 买张单人床属性,您将使用

var strAttribute = $(".something").attr("title");

To 设置一个单曲 attribute you would use

$(".something").attr("title","Test");

对于 设置多个属性,您需要将所有内容包装在{ ... }中

$(".something").attr( { title:"Test", alt:"Test2" } );

编辑-如果您试图获取/设置’选中’属性从一个复选框..。

您将需要使用 prop() 从 jQuery 1.6 + 开始

Prop ()方法提供了一种显式检索属性值的方法,而. attr ()检索属性。

...the most important concept to remember about the checked attribute is that it does not correspond to the checked property. The attribute actually corresponds to the defaultChecked property and should be used only to set the initial value of the checkbox. 选中的属性值不会随着复选框的状态而改变,而选中的属性会随之改变

因此,对于复选框的 获得检查状态,您应该使用:

$('#checkbox1').prop('checked'); // Returns true/false

或者到 set the checkbox as checked or unchecked你应该使用:

$('#checkbox1').prop('checked', true); // To check it
$('#checkbox1').prop('checked', false); // To uncheck it

正确的方法是:

.attr({target:'nw', title:'Opens in a new window'})

Something like this:

$(myObj).attr({"data-test-1": num1, "data-test-2": num2});

如果你想在锚标签中动态添加引导属性,这将对你很有帮助

 $(".dropdown a").attr({
class: "dropdown-toggle",
'data-toggle': "dropdown",
role: "button",
'aria-haspopup': "true",
'aria-expanded': "true"
});

使用花括号并将要添加的所有属性放入其中

例如:

$('#objId').attr({
target: 'nw',
title: 'Opens in a new window'
});
Multiple Attribute


var tag = "tag name";
createNode(tag, target, attribute);


createNode: function(tag, target, attribute){
var tag = jQuery("<" + tag + ">");
jQuery.each(attribute, function(i,v){
tag.attr(v);
});
target.append(tag);
tag.appendTo(target);
}
var attribute = [
{"data-level": "3"},
];