jQuery自定义字符串输出

时间:2015-08-11 20:30:21

标签: jquery

对我来说这是一个棘手的问题所以我无法向您展示我自己进步的任何示例,因为我正在尝试捕获由CMS输出的一行代码。

因此页面上的HTML看起来像这样:

<h1>Location Map</h1>
<p>[ dynamic_content contact_us/directionbutton ]</p>
<p>[ google_map 74%20Ashmore%20Road%2C%20Bundall%20QLD%204217%2C%20Australia -28.01051 153.40482999999995 14 100% 300 ]</p>
<p><a href="Contact_Us">Click here</a>&nbsp;to contact us.</p>

我想拉出这条线:

74%20Ashmore%20Road%2C%20Bundall%20QLD%204217%2C%20Australia

也许是通过定位“google_map”? 然后将其转换为以下格式:

74+Ashmore+Road,+Bundall+QLD+4217,+Australia

所以“%20”变成“+”而“%2C”变成“,”所以我可以在下面填写这个脚本的开头:

$(document).ready(function () {

    var startingLocation;
    var destination = "74+Ashmore+Road,+Bundall+QLD+4217,+Australia"; // replace this with any destination 

如果可能的话,我需要这个地址对于地址不同的不同项目是通用的。

我感谢任何帮助,因为这是我的jQuery舒适区:)

由于

2 个答案:

答案 0 :(得分:0)

首先获取正确的<p>元素:

var $googleMap = $('p:contains(google_map)').text();

然后提取位置:

var match = $googleMap.match(/google_map\s+([^\s]+)/i);
var location = match[1];

然后解码位置:

location = decodeURIComponent(location);

答案 1 :(得分:0)

我以为你会有多个获取元素得到t然后替换它们。在这里工作。

&#13;
&#13;
$.each($('p:contains(google_map)'),function(){
  var all = $(this).text().replace(/\[|\]|google_map/g,'').split(' ');
  for(var i in all){
    if(all[i].length){
      $(this).text(decodeURIComponent(all[i]).replace(/\s+/g,'+'));
      return true;
    }
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
body>
<h1>Location Map</h1>
<p>[ dynamic_content contact_us/directionbutton ]</p>
<p>[ google_map 74%20Ashmore%20Road%2C%20Bundall%20QLD%204217%2C%20Australia -28.01051 153.40482999999995 14 100% 300 ]</p>
<p><a href="Contact_Us">Click here</a>&nbsp;to contact us.</p>
&#13;
&#13;
&#13;

干杯。