Javascript 重置按钮-创建一个函数和一个按钮使其工作

Javascript 重置按钮-创建一个函数和一个按钮使其工作,javascript,google-fusion-tables,Javascript,Google Fusion Tables,我试图在Fusion Tables映射中创建一个重置按钮,一旦单击该按钮,所有标记都会显示出来。但有些东西不起作用。请看一看: 以下是完整的代码: 实际上,我试图从函数clearBox中的layer10部分模拟函数初始化。我也尝试过使用重置的方法,但它也不起作用 <!DOCTYPE html> <html> <head> <style> #map-canvas { width:500px; height:600px; } </style>

我试图在Fusion Tables映射中创建一个重置按钮,一旦单击该按钮,所有标记都会显示出来。但有些东西不起作用。请看一看:

以下是完整的代码:

实际上,我试图从函数clearBox中的layer10部分模拟函数初始化。我也尝试过使用重置的方法,但它也不起作用

<!DOCTYPE html>
<html>
<head>
<style>
#map-canvas { width:500px; height:600px; }
</style>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
var map;
var layerl0;
function initialize() {
  map = new google.maps.Map(document.getElementById('map-canvas'), {
    center: new google.maps.LatLng(-30.070876662388095, -51.1907958984375),
    zoom: 12,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  });
  layerl0 = new google.maps.FusionTablesLayer({
    query: {
      select: "'ENDERECO'",
      from: '3385625'
    },
    map: map
  });
}
function changeMapl0() {
  var searchString = document.getElementById('search-string-l0').value.replace(/'/g, "\\'");
  layerl0.setOptions({
    query: {
      select: "'ENDERECO'",
      from: 3385625,
      where: "'TIPO' = '" + searchString + "'"
    }
  });
}
google.maps.event.addDomListener(window, 'load', initialize);

//Function to be activated by the reset button
function clearBox() {
document.getElementById('search-string-l0').value = "";
  layerl0 = google.maps.FusionTablesLayer({
    query: {
      select: "'ENDERECO'",
      from: '3385625'
    },
  });
}

 </script>
 </head>
 <body>
<div id="map-canvas"></div>
<div style="margin-top: 10px;">
  <label>Tipo</label>
  <select id="search-string-l0" onchange="changeMapl0 (this.value);">
    <option value="">--Select--</option>
    <option value="Comidas variadas">Comidas variadas</option>
    <option value="Restaurante">Restaurante</option>
    <option value="Bar">Bar</option>
    <option value="Hotel">Hotel</option>
    <option value="Shopping Center">Shopping Center</option>
    <option value="Teatro">Teatro</option>
    <option value="Igreja">Igreja</option>
    <option value="Museu">Museu</option>
    <option value="Espaço de Cultura">Espaço de Cultura</option>
  </select><br/>
<input type="button" onclick="clearBox()" value="Reset Map" />
</div>
</body>
</html>

听起来您需要像这样重新设置查询

查看完整的代码,最简单的方法是更改重置函数以仅更改查询,而不是重新创建FusionTablesLayer:

更改:

function clearBox() {
document.getElementById('search-string-l0').value = "";
  layerl0 = google.maps.FusionTablesLayer({
    query: {
      select: "'ENDERECO'",
      from: '3385625'
    },
  });
}
致:

注意:我还删除了一个可能导致IE出现问题的无关逗号


什么事没有发生?若要重置select元素,不使用.value,而是使用.selectedIndex,然后将其设置为0。看看代码中没有map变量。你如何初始化地图?如何初始化FusionTablesLayer,对的初始查询是什么样子的?您可能只需要像我发布的示例一样重新运行它。changeMapl0函数是什么?是的,这就是我想要做的!顺便说一下,很棒的地图!实际上,我不想重置select表单。我想重置地图上的标记!根据您上传的完整代码更新,包括一个工作示例非常感谢!我相信代码缺少.setOptions方法。当然!我该怎么做?我是这里的乞丐。
function clearBox() {
document.getElementById('search-string-l0').value = "";
  layerl0.setOptions({
    query: {
      select: "'ENDERECO'",
      from: '3385625'
    }
  });
}