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

Ric*_*Zea 98 jquery

编辑:

我了解到使用其他价值_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');
Run Code Online (Sandbox Code Playgroud)

注意这两种.attr();方法.

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

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

我问的原因是因为DYR(不要重复自己)原则,所以如果我可以改进我的代码,那么很好,如果没有,那就是它的本质.

谢谢.

Ada*_*mat 218

应该管用:

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

注意:

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

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

来自.attr的jQuery文档(2016年9月):

尝试更改通过document.createElement()创建的输入或按​​钮元素的type属性将在Internet Explorer 8或更早版本上引发异常.

编辑:
供将来参考... 获取您将使用的单个属性

var strAttribute = $(".something").attr("title");
Run Code Online (Sandbox Code Playgroud)

设置一个单一的属性,你可以使用

$(".something").attr("title","Test");
Run Code Online (Sandbox Code Playgroud)

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

$(".something").attr( { title:"Test", alt:"Test2" } );
Run Code Online (Sandbox Code Playgroud)

编辑 - 如果您尝试从复选框中获取/设置'已检查'属性...

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

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

...要记住关于checked属性的最重要的概念是它与checked属性不对应.该属性实际上对应于defaultChecked属性,应仅用于设置复选框的初始值.checked属性值不会随复选框的状态而改变,而checked属性则会改变

因此,要获取复选框的选中状态,您应该使用:

$('#checkbox1').prop('checked'); // Returns true/false
Run Code Online (Sandbox Code Playgroud)

或者要将复选框设置为选中或取消选中,您应该使用:

$('#checkbox1').prop('checked', true); // To check it
$('#checkbox1').prop('checked', false); // To uncheck it
Run Code Online (Sandbox Code Playgroud)


Der*_*rek 26

正确的方法是:

.attr({target:'nw', title:'Opens in a new window'})
Run Code Online (Sandbox Code Playgroud)


小智 9

如果你动态地在锚标签中添加bootstrap属性,这将有助于你

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