2016-09-26 28 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>