2016-09-26 27 views
-1

我需要從Javascript中放置幾個​​屬性,因爲我無法編輯主代碼所在的文件,這是一個jsp文件(不要問我爲什麼)。如何把動態數據從後端進入ATTR()jQuery函數?

如果你看到的元素,它應該是這樣的:

<a class="callBtn dartClick callfix" 
    name="contact_us_purchase" dartId="2014_HLI_HLG_Home_Call_Us_CTA_OnClick" 
    href="tel:1-<loans:fmtPhone phone="${contactPhoneNumber}" 
    separator="-" areaCodeParens="false" />">Call</a> 

這是我的jQuery代碼至今:

var contact = $("[name='contact_us_equity']"); 
contact.attr({ 
    'href': 'tel:1-<loans:fmtPhone phone="${contactPhoneNumber}"', 
    'separator': '-', 
    'areaCodeParens': 'false' 
}); 

這個問題,是href元素渲染因爲它是這樣在HTML看起來像這樣:

<a class="callBtn dartClick callfix" 
    name="contact_us_equity" dartid="2014_HLI_HLG_Home_Call_Us_CTA_OnClick" 
    href="tel:1-&lt;loans:fmtPhone phone=&quot;${contactPhoneNumber}&quot;" 
    separator="-" areacodeparens="false">Call</a> 

有什麼建議嗎?

+0

$( 「一個[名稱= 'contact_us_equity']」); –

+0

您需要的輸出無效。 'href'屬性沒有正確關閉。 – Malk

回答

0

如果我正確地理解了你,你希望在HTML中存儲一些任意的數據屬性,而不用實際改變HTML元素「看起來&行爲」的方式。

要做到這一點,你可以使用$().data(),例如:

var myData = 'tel:1-<loans:fmtPhone phone="${contactPhoneNumber}"'; 

$("[name='contact_us_equity']").data("href", myData); 

你也可以使用$().attr(),使用data-前綴所有的新屬性:

var myData = 'tel:1-<loans:fmtPhone phone="${contactPhoneNumber}"'; 

$("[name='contact_us_equity']").attr("data-href", myData); 

之間的唯一區別它們是前者不修改DOM樹本身 - 它將數據存儲在jQuery內部結構中。

0

這是工作正常..

var contact = $("[name='contact_us_purchase']"); 
 
contact.attr({ 
 
    'href': 'tel:1-<loans:fmtPhone phone="${contactPhoneNumber}"', 
 
    'separator': '-', 
 
    'areaCodeParens': 'false' 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a 
 
    class="callBtn dartClick callfix" 
 
    name="contact_us_purchase" 
 
    dartId="2014_HLI_HLG_Home_Call_Us_CTA_OnClick" 
 
    separator="- " 
 
    areaCodeParens="false" />Call</a> 
 
<br/> 
 
(Right click and inspect to see the href)

0

$(document).ready(_ => { 
 
    var contact = $('[name=contact_us_purchase]'); 
 
    contact.attr('href', 'tel:1-<loans:fmtPhone phone="${contactPhoneNumber}" separator="-" areaCodeParens="false" />'); 
 
    console.log(contact.attr('href')) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a class="callBtn dartClick callfix" name="contact_us_purchase">Call</a>