2015-12-21 28 views
0

我需要從下面的剪輯WRPCTokenUrl CRM附件:獲取WRPCTokenURL從使用jQuery

<span id="crmAttachment" 
    tabIndex="0" 
    class="attachment" 
    title="Click to open" 
    attachmentId="{868FCA8E-C992-E511-9419-0050569E70E2}" 
    attachmentType="5" 
    merchantId="{D6DF1974-4CD8-DE11-BCF5-00155D010600}" 
    userId="{9D98CF02-A484-E511-9418-0050569E70E2}" 
    url="/Activities/Attachment/download.aspx" 
    "WRPCTokenUrl="Data I want to get"" 
    HideOpenButton="0"> 

這是我迄今使用jQuery 1.9.1:

$.get(URL, function (data) {    
    var tempDom = $('<output>').append($.parseHTML(data)); 
    var WRPCTokenElement = $(tempDom).find("crmAttachment"); 
    if (WRPCTokenElement) { 
     var WRPCTokenUrl = WRPCTokenElement.attr("WRPCTokenUrl"); 
     if (WRPCTokenUrl) { 
      URL = WRPCTokenUrl; 
      window.open(URL); 
     }    
    } 
}, "html"); 

但問題似乎與「WRPCTokenURL」屬性之前和之後的額外引號有關,因此我無法更改該屬性。有任何想法嗎?

回答

1

首先,HTML無效;該屬性周圍存在不匹配的雙引號。還要注意發明自己的屬性是無效的。如果你需要存儲自定義數據與元素,使用data-*屬性:

<span id="crmAttachment" 
    tabIndex="0" 
    class="attachment" 
    title="Click to open" 
    data-attachmentId="{868FCA8E-C992-E511-9419-0050569E70E2}" 
    data-attachmentType="5" 
    data-merchantId="{D6DF1974-4CD8-DE11-BCF5-00155D010600}" 
    data-userId="{9D98CF02-A484-E511-9418-0050569E70E2}" 
    data-url="/Activities/Attachment/download.aspx" 
    data-WRPCTokenUrl="Data I want to get" 
    data-HideOpenButton="0"> 

你的JS則只是有幾個問題。該crmAttachment選擇缺少#運營商,您應檢查jQuery對象的length屬性,看看是否有任何元素匹配的選擇,您現在應該使用data()方法來得到你所需要的信息:

$.get(URL, function (data) {    
    var tempDom = $('<output>').append($.parseHTML(data)); 
    var wrpcTokenElement = $(tempDom).find("#crmAttachment"); 
    if (wrpcTokenElement.length) { 
     var wrpcTokenUrl = wrpcTokenElement.data("wrpctokenurl"); 
     if (wrpcTokenUrl) { 
      window.open(wrpcTokenUrl); 
     }    
    } 
}, "html"); 

Example fiddle

請注意,由於jQuery緩存對象的方式,給予data()的屬性名稱是小寫字母。