使用jQuery将属性从一个元素复制到另一个元素

Copy an attribute from one element to another with jQuery

本文关键字:元素 一个 复制 另一个 jQuery 属性 使用      更新时间:2023-09-26

我有下面的jQuery代码,它似乎什么都没做。单击链接时,我正试图将其url属性的值复制到iframesrc属性中。

基本上,这是为了让链接在iframe中打开(每次单击新链接时,iframe的内容都会被替换),而不是像普通链接一样。

那么我的代码出了什么问题?

$('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属性的标记,那么您可以对其进行旋转。

您可能想要获得href属性(甚至阻止默认操作)

$('p.tweet a').click(function(ev){
    ev.preventDefault();
    var link = this.href;  // no need to call the $ function
    $('iframe').attr('src',link);
})

超链接的URL包含在href属性中,而不是url属性中。

您还应该防止默认操作,使您的代码看起来像这样:

$('p.tweet a').click(function(event){
    var link = $(this).attr('url');
    $('iframe').attr('src',link);
    // cancel default event
    event.preventDefault();
});