修改
我了解到使用除_blank
之外的其他值,不能在移动浏览器上使用以打开新的窗口/标签。
例如,如果您需要打开一个新窗口/标签:
适用于所有浏览器,甚至是移动浏览器:target="_blank"
。
这在移动浏览器上无效,但在桌面浏览器上运行:target="new"
。
-
虽然我有这个工作,但我不确定是否有更好的方法,或者我得到它的方式是正确/唯一的方式。
基本上我正在做的是将所有target="_new"
或target="_blank"
属性值替换为target="nw"
,这样只打开一个新窗口,其中所有其他新窗口都会打开为了不用多个窗口压倒用户。
我还添加了“在新窗口中打开”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(不要重复自己)原则,所以如果我可以改进我拥有的代码,那么很好,如果没有,那么它就是它。
感谢。
答案 0 :(得分:210)
应该工作:
.attr({
target:"nw",
title:"Opens in a new window"
});
注意强>:
“设置多个属性时,属性名称旁边的引号是可选的。
警告 :设置'class'属性时,必须始终使用引号!
来自.attr的jQuery文档(2016年9月):
尝试更改通过document.createElement()创建的输入或按钮元素的type属性将在Internet Explorer 8或更早版本上引发异常。
修改强>:
备查...
要获取单个属性,您可以使用
var strAttribute = $(".something").attr("title");
要设置单个属性,您将使用
$(".something").attr("title","Test");
要设置多个属性,您需要将所有内容包装在{...}
中$(".something").attr( { title:"Test", alt:"Test2" } );
您需要使用prop()
as of jQuery 1.6+
.prop()方法提供了一种显式检索属性值的方法,而.attr()检索属性。
...要记住关于checked属性的最重要的概念是它与checked属性不对应。该属性实际上对应于defaultChecked属性,应仅用于设置复选框的初始值。 选中的属性值不会随复选框的状态而变化,而checked属性会
因此,要获得复选框的获取已检查状态,您应该使用:
$('#checkbox1').prop('checked'); // Returns true/false
或者将复选框设置为选中或取消选中,您应该使用:
$('#checkbox1').prop('checked', true); // To check it
$('#checkbox1').prop('checked', false); // To uncheck it
答案 1 :(得分:26)
正确的方法是:
.attr({target:'nw', title:'Opens in a new window'})
答案 2 :(得分:2)
这样的事情:
$(myObj).attr({"data-test-1": num1, "data-test-2": num2});
答案 3 :(得分:1)
使用大括号并将要添加的所有属性放入其中
示例:
$('#objId').attr({
target: 'nw',
title: 'Opens in a new window'
});
答案 4 :(得分:0)
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"},
];