javascript - 将动态变量中的空格格式化为谷歌地图返回函数中的连字符
问题描述
我正在尝试格式化和替换+marker.title+输出中的空格,并将它们更改为连字符 (-) 以动态打开模式。例如San Diego转换为San-Diego。任何帮助将不胜感激。
不确定您需要查看多少代码,但这是整个循环。谢谢。
$count = count($output);
$i=1;
echo 'var locations = [';
foreach($output as $o) {
if ($i == $count) { $c = ''; } else { $c = ','; }
echo json_encode($o) . $c;
$i++;
}
echo '];';
?>
var marker, i;
var infowindow = new google.maps.InfoWindow();
google.maps.event.addListener(map, 'click', function() {
infowindow.close();
});
for (i = 0; i < locations.length; i++) {
markericon = (locations[i][7] == 'undefined') ? '' : locations[i][7];
marker = new google.maps.Marker({
icon: markericon,
position: new google.maps.LatLng(locations[i][5], locations[i][6]),
map: map,
title: locations[i][0],
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
$('#'+marker.title+'').modal('show');
}
})(marker, i));
解决方案
我了解到您想修改这行 JavaScript 代码
$('#'+marker.title+'').modal('show');
为了替换空格,-
您应该将String.replace()函数与空字符串的正则表达式/\s/
结合使用。因此,您的代码应更改为
('#'+marker.title.replace(/\s/ig, "-")+'').modal('show');
概念证明:
var title = "San Diego";
document.getElementById("result").innerHTML = title.replace(/\s/ig, "-");
<div id="result">
</div>
我希望这有帮助!
推荐阅读
- node.js - 是否可以在 Node 的同一端口上运行服务器并初始化多个套接字?
- python-3.x - 文件以单一名称重复保存,不循环,不测距
- c++ - 如何修复 C++ 中向量的“下标超出范围”错误?
- apache-spark - 如何判断 Spark 使用什么 AWS 凭证来读取 S3 文件?
- php - 无法解析的依赖解析 [参数#0 [
$api_key ]] 在类 Authy\AuthyApi - javascript - 如何通过鼠标滚轮水平滚动div,锁定正文滚动?
- asp.net-mvc - ASP.NET Core 3.0 控制器路由不起作用
- c++ - Qt - 为什么无法使用从 FileDialog 获取的目录使用 QFile 读取文件?
- design-patterns - 编程语言设计范式或信号和系统
- python - python选择解释列表索引重新分配的动机是什么?