我遇到麻烦,因为这是在xsl模板中,所以每次吐出一行时,span类存储行值,所以如果有三个项目,则span类将保存三个地址值,这些值将被传递给谷歌地图网址而不是一次一个...我使用的jquery是:
$('.HospitalAddressHidden').each(function(index) {
var LocationAddress=$(".HospitalAddressHidden").text();
$(".MapDirections > a").prop("href", function (index, oldHref) {
return oldHref + LocationAddress;
});
});
现在这确实有效,除了它传递了xsl返回的所有项目的所有地址,如下所示: - http://maps.google.com/maps?q=86th Street West,Indianapolis IN 4626024 Joliet street,Dyer IN 463112001 86th Street West,Indianapolis IN 4626024 Joliet street,Dyer IN 46311
<xsl:template name="dvt_1.rowview">
<span class="HospitalAddressHidden">
<xsl:value-of select="concat(@ADDRESS_LINE_1,',',@CITY,' ',@STATE,' ',@ZIP)" />
</span>
<span class="MapDirections" style="padding-top:10px">
<a href="http://maps.google.com/maps?q=">Maps & Directions</a>
</span>
</xsl:template>
答案 0 :(得分:1)
您应该再次使用$(this)
而不是选择器,因为这将选择该类的所有范围。使用$(this).text()
将为您提供迭代中当前项的文本。另外,我建议你使用jQuery的遍历行为来获取下一个.MapDirections > a
而不是选择所有.MapDirections > a
$('.HospitalAddressHidden').each(function(index) {
var LocationAddress=$(this).text();
$(this).next('.MapDirections').find('a').prop("href", function (index, oldHref) {
return oldHref + LocationAddress;
});
});