jQuery:通过.attr()添加两个属性; 方法
编辑:
我了解到,使用_blank
之外的其他值,不能在移动浏览器上打开新的窗口/选项卡。
例如,如果你需要打开一个新的窗口/选项卡:
-
这适用于所有浏览器,甚至移动浏览器:
target="_blank"
。 -
这在移动浏览器上不起作用 ,但在桌面浏览器上可以正常工作 :
target="new"
。
–
虽然我有这个工作,但我不确定是否有更好的方法来做到这一点,或者如果我的方式是正确的/唯一的方式。
基本上我正在做的是将所有target="_new"
或target="_blank"
属性值replace为target="nw"
,这样只有一个新窗口被打开,并且所有其他的新窗口将会打开不会用多个窗口压倒用户。
我还添加了“ 在新窗口中打开 ” title=""
属性。
所以我创build的解决scheme是这样的:
$("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(不要重复自己)的原则,所以如果我能改善我的代码,那么很好,如果不是,那么它就是这样。
谢谢。
应该pipe用:
.attr({ target:"nw", title:"Opens in a new window" });
注意 :
“ 设置多个属性时,属性名称的引号是可选的。
警告 :设置'class'属性时,必须始终使用引号!
从jQuery文档(2016年9月) .attr :
尝试更改通过document.createElement()创build的input或按钮元素上的type属性将在Internet Explorer 8或更低版本上引发exception。
编辑 :
为了将来的参考…要获得一个属性,你会使用
var strAttribute = $(".something").attr("title");
设置您将使用的单个属性
$(".something").attr("title","Test");
要设置多个属性,您需要将所有内容都包含在{…}中
$(".something").attr( { title:"Test", alt:"Test2" } );
编辑 – 如果你想从checkbox中获取/设置'checked'属性…
你将需要使用prop()
作为jQuery 1.6+
.prop()方法提供了显式检索属性值的方法,而.attr()检索属性。
…关于checked属性最重要的概念是它不符合checked属性。 该属性实际上对应于defaultChecked属性,只能用于设置checkbox的初始值。 检查的属性值不会随checkbox的状态而变化,而检查的属性值会变化
所以要获得一个checkbox的检查状态 ,你应该使用:
$('#checkbox1').prop('checked'); // Returns true/false
或者将checkbox设置为选中或取消选中,您应该使用:
$('#checkbox1').prop('checked', true); // To check it $('#checkbox1').prop('checked', false); // To uncheck it
正确的方法是:
.attr({target:'nw', title:'Opens in a new window'})
如果你dynamic添加引导标签的引导属性比这将帮助你很多
$(".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});