如何获得第一个js对象?

时间:2018-11-20 03:40:14

标签: javascript jquery

我有这个

 var markersList = document.getElementById('markersList');
 L.MarkerCluster.include({
    spiderfy: function(e) {
    var childMarkers = this.getAllChildMarkers();
    this._group._unspiderfy();
    this._group._spiderfied = this;
    // Fill the markersList.
    markersList.innerHTML = childMarkers
      .map((marker, index) => `<li>Marker ${index + 1}: 
        ${marker.getLatLng()}</li>`)
        .join('');
    // Show the modal.
    console.log(markersList);
    $(".modalResult").modal('show');
  },...

上面在控制台中给了我

<li>Marker 1: LatLng(45.49934, 9.37966)</li>
<li>Marker 2: LatLng(45.49934, 9.37966)</li>

我需要能够以字符串45.49934, 9.37966的形式获得,因为它们是相同的值,所以我只需要一个,就需要它作为字符串,因为稍后我将不得不将其插入为输入值:

<input type="hidden" value="45.49934, 9.37966">

2 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,则可以通过以下正则表达式从getLatLng()的结果中提取lat和lng值:

/(-?\d+.\d*)/gi传递给.match()

此正则表达式将从getLatLng()的结果中提取两个数字;一个用于经纬度,另一个用于经纬度,然后可以将其组合以获取要用于输入元素的value属性的requiredString

{ 
  spiderfy: function(e) {
      var childMarkers = this.getAllChildMarkers();
      this._group._unspiderfy();
      this._group._spiderfied = this;
      // Fill the markersList.

      markersList.innerHTML = childMarkers.map((marker) => 
      `<li>Marker: ${marker.getLatLng()}</li>`).join('');

      // If there are any childMarkers
      if(childMarkers.length > 0) {

        // Match the lat and lng numbers from the string returned by getLatLng()
        const [lat, lng] = `${ childMarkers[0].getLatLng() }`
        .match(/(-?\d+.\d*)/gi);

        // Construct the required string value from the extracted numbers
        const requiredString = `${ lat }, ${ lng }`;

        // Use requiredString to populate the value attribute of the
        // input field in OP
        console.log(requiredString);

      }

      // Show the modal.
      console.log(markersList);
      $(".modalResult").modal('show');
    }
  }

答案 1 :(得分:0)

您可以使用children,就像这样:

markersList.children[0].innerText