首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery:通过.attr();方法添加两个属性

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

Stack Overflow用户
提问于 2012-10-22 23:09:06
回答 6查看 161.7K关注 0票数 112

编辑:

我了解到,使用_blank以外的其他值在移动浏览器上打开新窗口/标签是不起作用的。

例如,如果您需要打开一个新窗口/选项卡:

  • This可以在所有浏览器上运行:target="_blank".
  • This不能在移动浏览器上运行,但它可以在桌面浏览器上运行:target="new".

--

虽然我有这个工作,但我不确定是否有更好的方法,或者我得到它的方式是正确的/唯一的方式。

基本上,我要做的是将所有target="_new"target="_blank"属性值替换为target="nw",这样只会打开一个新窗口,并且在其中会打开所有其他新窗口,以避免多个窗口让用户不知所措。

我还添加了一个“在新窗口中打开”title=""属性。

所以我创建的解决方案是这样的:

代码语言:javascript
复制
$("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 (不要重复自己)原则,所以如果我可以改进我的代码,很好,如果不是,那么它就是它。

谢谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-10-22 23:10:54

应该行得通:

代码语言:javascript
复制
.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或更早的版本上抛出异常。

编辑

以备将来参考。要使用获取单个属性,您可以使用

代码语言:javascript
复制
var strAttribute = $(".something").attr("title");

,请设置要使用的单个属性

代码语言:javascript
复制
$(".something").attr("title","Test");

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

代码语言:javascript
复制
$(".something").attr( { title:"Test", alt:"Test2" } );

编辑-如果您试图从复选框中获取/设置“选中”属性...

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

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

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

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

代码语言:javascript
复制
$('#checkbox1').prop('checked'); // Returns true/false

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

代码语言:javascript
复制
$('#checkbox1').prop('checked', true); // To check it
$('#checkbox1').prop('checked', false); // To uncheck it
票数 249
EN

Stack Overflow用户

发布于 2012-10-22 23:11:21

正确的方法是:

代码语言:javascript
复制
.attr({target:'nw', title:'Opens in a new window'})
票数 29
EN

Stack Overflow用户

发布于 2017-02-24 14:26:25

如果你想在锚标签中动态添加bootstrap属性,那么这将对你有很大帮助

代码语言:javascript
复制
 $(".dropdown a").attr({
      class: "dropdown-toggle",
     'data-toggle': "dropdown",
      role: "button",
     'aria-haspopup': "true",
     'aria-expanded': "true"
});
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13014317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档