初始化后更改输入字段的占位符文本

时间:2015-02-16 22:38:01

标签: javascript jquery placeholder mapbox

我正在使用在地图上生成的输入字段。我想将输入字段的占位符文本从“搜索”更改为“搜索位置”。

输入字段没有类或id,但它的父节点有。我尝试使用下面的jQuery初始化后进行更改无效。

$('.leaflet-control-mapbox-geocoder-form input').attr("placeholder","Search for Location");

下面是输入字段可见的小提琴。我很高兴继续使用jQuery或纯JS。

http://jsfiddle.net/teraw600/

2 个答案:

答案 0 :(得分:3)

它不适用于你的例子,因为没有包含jQuery。

如果您不想使用jQuery,可以使用以下内容:

Updated Example

document.querySelector('.leaflet-control-mapbox-geocoder-form input').placeholder = "Search for Location";

您还可以为ready事件添加事件侦听器,然后更改回调中的placeholder属性。同样,不需要jQuery:

Example Here

L.mapbox.accessToken = 'pk.eyJ1Ijoic3BheWNlIiwiYSI6IlNIMnRfZ2MifQ.SreIfdJljzEj2M033UubsA';
L.mapbox.map('map', 'examples.h186knp8')
    .addControl(L.mapbox.geocoderControl(
        'mapbox.places', {
            keepOpen: true
        }
    ))
    .addEventListener('ready', function () {
        document.querySelector('.leaflet-control-mapbox-geocoder-form input').placeholder = "Search for Location";
    }
);

答案 1 :(得分:2)

一种更好的方法是在地理编码器对象中添加键值对(占位符: 您的文本 ),就像在初始化时那样:

  var geocoder = new MapboxGeocoder({
    accessToken: mapboxgl.accessToken,
    mapboxgl: mapboxgl,
    placeholder: 'Search for Location'
  });