2010-07-07 4 views
0

Так что im используя jquery для поиска и замены определенного текста на моей странице html. Что:текст заменить на jquery

function offon(){ 
    $("#sidebar li").each(function(){ 
    $(this).html($(this).html().replace(/Off Premise/, "Liquor Store")); 
    $(this).html($(this).html().replace(/On Premise/, "Bar/Restaurant")); 
    }); 
} 

Это функция createmarker, она использует 3-ю часть всплывающей подсказке ДИВ является «simple_example_window», который содержит все HTML. Я попытался использовать simple_example_window для div в функции offon, но ничего не сделал.

http://gmaps-utility-library-dev.googlecode.com/svn/trunk/extinfowindow/docs/examples.html - это плагин.

function createMarker(point, name, address, type) { 
var marker = new GMarker(point, customIcons[type]); 
    markerGroups[type].push(marker); 
var html = '<span class="name"><b>' + name + '</b></span> <br/>' + address + '<br/>' +  type; 
GEvent.addListener(marker, 'click', function() { 
    marker.openExtInfoWindow(
     map, 
     "simple_example_window", 
    html, 
     {beakOffset: 2} 
    ); 

Это работает как шарм. Единственная проблема теперь в том, что мои подсказки на картах Google не меняются.

Любые идеи?

+0

Если мой ответ помог, пожалуйста, отметьте его как ответ. – Boushley

ответ

1

Я вижу из комментариев вы поняли это, только немного оптимизированной версии здесь:

function offon(){ 
    $("#sidebar li").html(function(i, h){ 
    return h.replace(/Off Premise/, "Liquor Store") 
      .replace(/On Premise/, "Bar/Restaurant"); 
    }); 
} 

You can test it here

.html() можно взять функцию, и не нужно создавать излишние JQuery объекты (и .html() звонков) по пути, это приведет к лота сохраненных циклов процессора.

1

Перед тем, как прикрепить данные к карте google, вам необходимо выполнить замену тем же текстом. Или когда вы прикрепляете данные к карте google.

+0

Как получить несколько строк .replace() для одной переменной? т.е.: var newstring = type.replace (/ Off Premise /, "Liquor Store"); var newstring = type.replace (/ On Premise /, "Bar/Restaurant"); – Robert

+0

Я понял, спасибо, ребята! – Robert

+0

Для дальнейшего использования любого из тех, кто сталкивается с этим, вы можете сделать это с помощью var newstring = type.replace (/ Off Premise /, «Liquor Store»). Replace (/ On Premise /, «Bar/Restraunt»); – Boushley

0

Возможно, нам потребуется увидеть больше разметки, чтобы убедиться в правильности выбора. Кроме того, как отмечает Boushley, время может быть таким, что всплывающие подсказки генерируются (или добавляются) после выполнения jQuery.

+0

Ya, это похоже на проблему с синхронизацией, так как он зацикливает элементы #sidebar li ... Вам нужно сделать то же самое, что и при создании маркеров на карте. – Boushley

+0

Я попытался поместить функцию в функцию загрузки карт Google. все еще никаких изменений. – Robert

Смежные вопросы