簡體   English   中英

使用jQuery將屬性從一個元素復制到另一個

[英]Copy an attribute from one element to another with jQuery

我有以下的jQuery代碼,似乎沒有做任何事情。 單擊鏈接后,我正在嘗試獲取其url屬性的值,以將其復制到iframesrc屬性中。

基本上,這應該使鏈接在iframe中打開(每次單擊新鏈接時都會替換iframe的內容),而不是像普通鏈接一樣工作。

那么我的代碼有什么問題呢?

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

也許您可能想要獲取href屬性(甚至阻止默認操作)

$('p.tweet a').click(function(ev){
    ev.preventDefault();
    var link = this.href;  // no need to call the $ function
    $('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') href屬性比標准HTML中的url屬性更常見於錨點,但是如果您發明了一些標記,這些標記中的錨點具有url屬性,那么您可以旋轉一下。

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

您還應該阻止默認操作,使您的代碼如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM