编辑:
我了解到,使用_blank
以外的其他值,在移动浏览器上不起作用以打开新的Windows/Tabs。
例如,如果您需要打开一个新窗口/选项卡:
-
这可以在所有浏览器上,甚至移动浏览器:
target="_blank"
。 -
这在移动浏览器上不起作用,但它确实有效在桌面浏览器上:
target="new"
。
-
尽管我有这个工作,但我不确定是否有更好的方法,或者我获得的方法是正确的/唯一的方法。
基本上,我正在做的是将所有target="_new"
或target="_blank"
属性值替换为target="nw"
,这样,只有一个新窗口打开,其中所有其他新窗口都将打开,以免用多个Windows的用户压倒用户。
我还添加了" "在新窗口中打开" title=""
属性。
所以我创建的解决方案是:
$("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(不要重复自己)原则,因此,如果我可以改进我拥有的代码,如果没有,那么它就是它。
谢谢。
应该有效:
.attr({
target:"nw",
title:"Opens in a new window",
"data-value":"internal link" // attributes which contain dash(-) should be covered in quotes.
});
注意:
"设置多个属性时,围绕属性名称的引号是可选的。
警告:设置"类"属性时,您必须始终使用引号!
来自.attr的jQuery文档(2016年9月):
试图更改通过document.createelement()在Internet Explorer 8或以上创建的输入或按钮元素上的类型属性。
编辑:
备查...获取单个属性您将使用
var strAttribute = $(".something").attr("title");
to 设置单个属性您将使用
$(".something").attr("title","Test");
to 设置多个属性您需要包装{...}
中的所有内容$(".something").attr( { title:"Test", alt:"Test2" } );
编辑 - 如果您想从复选框中获取/设置"已检查"属性...
您将需要使用 prop()
jquery 1.6
.prop()方法提供了一种显式检索属性值的方法,而.attr()检索属性。
...关于检查属性的最重要概念是它与检查属性不符。该属性实际上对应于DefaultChecked属性,应仅用于设置复选框的初始值。检查的属性值不会随复选框的状态而变化,而检查属性确实
SO 获得复选框的检查状态,您应该使用:
$('#checkbox1').prop('checked'); // Returns true/false
或设置选中或未检查的复选框您应该使用:
$('#checkbox1').prop('checked', true); // To check it
$('#checkbox1').prop('checked', false); // To uncheck it
正确的方法是:
.attr({target:'nw', title:'Opens in a new window'})
如果您要在锚定标签中添加bootstrap属性,而不是动态的,这将有助于您
$(".dropdown a").attr({
class: "dropdown-toggle",
'data-toggle': "dropdown",
role: "button",
'aria-haspopup': "true",
'aria-expanded': "true"
});
类似的东西:
$(myObj).attr({"data-test-1": num1, "data-test-2": num2});
使用卷曲支架,并将所有要添加的属性放在
中示例:
$('#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"},
];