如何将来自后端的动态数据放入attr()jquery函数?

时间:2016-09-26 17:58:56

标签: javascript jquery html jsp

我需要从Javascript中添加一些属性,因为我无法编辑主代码所在的文件,这是一个jsp文件(不要问我原因)。

如果您看到该元素,它应如下所示:

<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>

有什么建议吗?

3 个答案:

答案 0 :(得分: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的内部结构中。

答案 1 :(得分: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)

答案 2 :(得分:0)

&#13;
&#13;
$(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'))
});
&#13;
<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>
&#13;
&#13;
&#13;