Javascript 使用jQuery将属性从一个元素复制到另一个元素
我有下面的jQuery代码,它似乎没有做任何事情。单击链接时,我试图将其Javascript 使用jQuery将属性从一个元素复制到另一个元素,javascript,jquery,Javascript,Jquery,我有下面的jQuery代码,它似乎没有做任何事情。单击链接时,我试图将其url属性的值复制到iframe的src属性中 基本上,这是为了使链接在iframe中打开(每次单击新链接时,iframe的内容都会被替换),而不是像普通链接一样 那么我的代码有什么问题 $('p.tweet a').click(function(){ var link = $(this).attr('url'); $('iframe').attr('src',link); }) 也许您希望获得href属性
url
属性的值复制到iframe
的src
属性中
基本上,这是为了使链接在iframe中打开(每次单击新链接时,iframe的内容都会被替换),而不是像普通链接一样
那么我的代码有什么问题
$('p.tweet a').click(function(){
var link = $(this).attr('url');
$('iframe').attr('src',link);
})
也许您希望获得
href
属性(甚至阻止默认操作)
那么我的代码有什么问题
$('p.tweet a').click(function(){
var link = $(this).attr('url');
$('iframe').attr('src',link);
})
通过从您订阅的锚点的单击处理程序返回false,您并没有取消默认操作,因此在浏览器从该页面重定向之前,您的脚本没有任何执行机会:
$('p.tweet a').click(function() {
var link = $(this).attr('href');
$('iframe').attr('src', link);
return false;
});
顺便说一下,请注意我使用了
$(this.attr('href')
,而不是$(this.attr('url')
)。与标准HTML中的url
属性相比,href
属性对于锚更为常见,但是如果您发明了一些标记,其中锚具有url
属性,那么您可以对其进行旋转。超链接的url包含在href
属性中,不是url
属性
您还应该防止默认操作,使您的代码如下所示:
$('p.tweet a').click(function(event){
var link = $(this).attr('url');
$('iframe').attr('src',link);
// cancel default event
event.preventDefault();
});
什么是
url
属性?你的意思大概是href
。。?顺便说一句,var link=this.href
同样有效,而且速度更快。我知道,我正在将值存储在伪属性中,直到它可以复制到iFrame。您可能需要使用数据-
标记和数据()
函数<代码>$(this).data('url')@SamNabi-所以我假设问题不是取消默认事件,那么您都准备好了(更新的答案,尽管它不是很有用,因为已经有两个答案说明了这个问题)?另外,dcpomero是正确的——添加一个没有data-
前缀的自定义属性是无效的HTML(尽管它仍然可以正常工作,所以这不是一个大问题)。这在今天很有用。谢谢分享!