2016-12-08 20 views
0

我需要我的网站在Google地图上显示地址和指向同一地址的链接。从链接中删除格式但不在里面的文本

CMS正在输出格式化文本,因此它在页面上看起来不错(带有段落和中断标签),但我需要在href中将这些文件去掉,以便正确链接。

换句话说,我输出是这样的:

<p>Address Line 1<br> 
Address line 2<br> 
City, State, Zip</p> 

但我需要周围使用来自CMS输出相同,但它将除去HTML标记这个文本的链接。所以,这样的事情:

<a href="http://maps.google.com/?q=Address Line 1, Address Line 2 City, State, Zip"</a> 

我已经能够剥去标签并用空格替换它们,但随后也从链接中的格式化文本去掉它们。我还没有能够只有从链接中去掉标签而不是链接中的格式化文本。

任何人有想法?

回答

1

你可以用replace()做到这一点:

HTML:

<p id="address">Address Line 1<br> 
Address line 2<br> 
City, State, Zip</p> 
<a id="gMapLink" href="http://maps.google.com/?q=Address Line 1, Address Line 2 City, State, Zip"</a> 

JS:

$(document).ready(function() { 
    var address = $('#address').html(), 
     link = 'http://maps.google.com/?q=', 
     addressStripped = address.replace(/<br>/g, ','); 

    $('#gMapLink').prop('href', link + addressStripped); 
    console.log(addressStripped, $('a').prop('href')) 
}); 

见的jsfiddle here

+0

谢谢!我使用.attr()而不是.prop(),但我不知道为什么我的工作不正常。 – lamb321001

+0

很难说,没有看到您的代码 –

0

我假设你在jQuery的意思是,从你的标签,所以我觉得这是How to strip HTML tags with jQuery?

重复的......如果你真的想逗号,以取代换行符,你可以做一个字符串替换为换行符的\ n字符

+0

嗨。我可以剥离HTML罚款,但只有从链接而不是文本是我遇到的问题。 – lamb321001

2

你试过了$().text()和encodeURIComponent吗?

$('.Result').html(encodeURIComponent($('.req').text()))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="req"><span>abc,<span>eef</span></span></div> 
 

 
<div class="Result"></div>

2

是的,我认为这是你的第二行,你做replaceWith ......在这一点上“地址”只是一个文本字符串,所以真正你只想使用普通的旧javascript正则表达式吧:

var strippedAddress = address.replace(/[\r\n]{1,2}/g, ' '); 

而且应该这样做!

希望这会有所帮助!

0

这已经被问过,我只是做了谷歌搜索“的JavaScript删除字符串html标签”,发现了多种方式(其中大部分在计算器上...)

你可以尝试像: var html = "<p>Some HTML</p>"; var div = document.createElement("div"); div.innerHTML = html; var text = div.textContent || div.innerText || "";

textContent和innerText做类似但不一样的事情。我会研究它们并找到最适合你的那个。

+0

我能够从字符串中删除html标签,但我在将这些标签保留在文本中时遇到问题,但是仅从链接中删除它们。我也搜索了一下,但没能找到任何可以成功使用的东西。 – lamb321001