编辑:
我了解到,使用_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 (不要重复自己)原则,所以如果我可以改进我的代码,很好,如果不是,那么它就是它。
谢谢。
发布于 2012-10-22 23:10:54
应该行得通:
.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 Explorer8或更早的版本上抛出异常。
编辑
以备将来参考。要使用获取单个属性,您可以使用
var strAttribute = $(".something").attr("title");
要,请设置要使用的单个属性
$(".something").attr("title","Test");
要设置多个属性,您需要将所有内容包装在{ ... }中
$(".something").attr( { title:"Test", alt:"Test2" } );
编辑-如果您试图从复选框中获取/设置“选中”属性...
您将需要使用prop()
as of jQuery 1.6+
.prop()方法提供了一种显式检索属性值的方法,而.attr()则检索属性。
...the关于checked属性要记住的最重要的概念是它与checked属性不对应。该属性实际上对应于defaultChecked属性,应该仅用于设置checkbox的初始值。checked属性的值不随checkbox的状态而变化,而checked属性的值则随checkbox的状态而变化
因此,要获取复选框的选中状态,您应该使用:
$('#checkbox1').prop('checked'); // Returns true/false
或者,要将复选框设置为选中或取消选中,请使用:
$('#checkbox1').prop('checked', true); // To check it
$('#checkbox1').prop('checked', false); // To uncheck it
发布于 2012-10-22 23:11:21
正确的方法是:
.attr({target:'nw', title:'Opens in a new window'})
发布于 2017-02-24 14:26:25
如果你想在锚标签中动态添加bootstrap属性,那么这将对你有很大帮助
$(".dropdown a").attr({
class: "dropdown-toggle",
'data-toggle': "dropdown",
role: "button",
'aria-haspopup': "true",
'aria-expanded': "true"
});
https://stackoverflow.com/questions/13014317
复制相似问题