2011-10-15 3 views
1

Что я хочу делать:

У меня есть div с id. Всякий раз, когда происходит «>», я хочу заменить его на «>>». Я также хочу префикс div с «Вы здесь:».Строка замените содержимое div

Пример:

<div id="bbp-breadcrumb">Home &gt; About &gt; Contact</div> 

Контекст:

Мой ДИВ содержит Иерархическая ссылки на bbPress, но я стараюсь, чтобы соответствовать его формату на сайт-wodę крошки хлеба плагин, который я использую для WordPress , Div называется функцией в PHP и выводится как HTML.

Мой вопрос:

ли я использовать PHP в Javascript, чтобы заменить символы и как я могу идти о вызове содержимое DIV в первую очередь?

ответ

0

Вы можете использовать CSS, чтобы добавить Вы здесь текст:

#bbp-breadcrumb:before { 
    content: "You are here: "; 
} 

Поддержка браузеров:
http://www.quirksmode.org/css/beforeafter_content.html

Вы можете изменить> в >> с JavaScript:

var htmlElement = document.getElementById('bbp-breadcrumb'); 
htmlElement.innerHTML = htmlElement.innerHTML.split('&gt;').join('&gt;&gt;').split('>').join('>>') 

Я не рекомендую изменять контент наподобие этого, это действительно взломано. Если возможно, вам лучше изменить представление вывода в виде палитры. В Wordpress это должно быть выполнимо.

+0

функция замены javascript будет работать только в первом случае; попробуйте следующие строки: var text = 'abcbsdbasd'; console.log (text.replace ('b', 'd')); вы увидите, что заменяется только первое письмо b – mishu

+0

Ах, извините, я исправил это. –

+0

Я избегал взломанного подхода, как было предложено. Я использовал условную функцию (PHP) для изменения вывода: http://bbpress.org/forums/topic/how-do-i-edit-bbpress-breadcrumbs –

1

Найдите код, генерирующий &lt;, и либо установите соответствующий параметр (breadcrumb_separator, либо так), либо измените код php, чтобы изменить разделитель.

Модифицировать предположительно статический текст с помощью JavaScript - это не только кошмар обслуживания, чрезвычайно хрупкий и может привести к странному рендерингу (поскольку пользователи видят, что ваш сайт изменяется, если их система работает медленно), но также не будет работать в браузерах без (или с отключенным) поддержка JavaScript.

+0

Приветствия для консультации. Я решил изменить выход с помощью PHP, чтобы изменить функцию, которая создает div. –

0

вы можете использовать регулярные выражения, чтобы соответствовать содержанию .. сделать строку навигации изменения на нем .. и положить его обратно в контексте .. проверить, если это поможет вам:

$the_existing_html = 'somethis before<div id="bbp-breadcrumb">Home &gt; About &gt; Contact</div>something after'; // let's say this is your curreny html.. just added some context 
    echo $the_existing_html, '<hr />'; // output.. so that you can see the difference at the end 
    $pattern ='|<div(.*)bbp-breadcrumb(.*)>(.*)<\/div>|sU'; // find some text that is in a div that has "bbp-breadcrumb" somewhere in its atributes list 

    $all = preg_match_all($pattern, $the_existing_html, $matches); // match that pattern 

    $current_bc = $matches[3][0]; // get the text inside that div 

    $new_bc = 'You are here: ' . str_replace('&gt;', '&gt;&gt;', $current_bc);// replace entity for > with the same thing repeated twice 

    $the_final_html = str_replace($current_bc, $new_bc, $the_existing_html); // replace the initial breadcrumb with the new one 
    echo $the_final_html; // output to see where we got 
+0

Эй, спасибо за полезный PHP-код. Я вместо этого отфильтровал функцию, которая выводила содержимое хлебной крошки. –

+0

Если вам интересно, вы можете увидеть, как я это сделал здесь: http://bbpress.org/forums/topic/how-do-i-itit-bbpress-breadcrumbs –

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