2 回答

TA貢獻(xiàn)1799條經(jīng)驗 獲得超6個贊
您的 ID 包含特殊字符(特別是點)。請參閱文檔:
如果 id 包含句點或冒號等字符,則必須使用反斜杠轉(zhuǎn)義這些字符。
(這是因為.
會被解釋為類選擇器:例如,#42.123456
意味著選擇具有 ID42
和類的元素。)123456
另外,它以數(shù)字開頭,這在技術(shù)上是不允許的:
ID 和 NAME 令牌必須以字母 ([A-Za-z]) 開頭,后可跟任意數(shù)量的字母、數(shù)字 ([0-9])、連字符 ("-")、下劃線 ("_") 、冒號(“:”)和句點(“.”)
...但是,它仍然適用于我測試過的所有瀏覽器。
您有幾個選擇:
您可以使用反斜杠轉(zhuǎn)義點:
$('#' + e.latlng.lat.toString().replace('.', '\\.')).remove()
您可以
[id="..."]
改為查詢:$('[id="' + e.latlng.lat + '"]').remove()
你可以使用
document.getElementById
:$(document.getElementById(e.latlng.lat)).remove()
。
在我看來,這樣的值無論如何都不應(yīng)該是 ID,我會使用數(shù)據(jù)屬性來代替,或者直接保留對元素的引用:
var $element = $('<div><label>test:</label><input type="hidden" name="map_coords" value="' + e.latlng.lat + '|' + e.latlng.lng + '"/></div>');
$('#map').append($element);
var marker = L.marker([e.latlng.lat, e.latlng.lng]).addTo(mymap);
marker.on('click',function(e) {
? ? $element.remove();
? ? this.remove();
});
請注意,我還將元素包裝在此處<div>!實際上,如果沒有它,它甚至一開始就無法工作,因為您刪除的元素只是 the<input>而不是<label>.

TA貢獻(xiàn)1820條經(jīng)驗 獲得超9個贊
我可以在同一位置單擊地圖兩次。第二次單擊時標(biāo)記消失。
但是,由于單擊同一緯度坐標(biāo)非常困難,因此看起來標(biāo)記并未被刪除。那是因為另一個標(biāo)記被放置在該新位置上。
- 2 回答
- 0 關(guān)注
- 141 瀏覽
添加回答
舉報