String替换div的内容

时间:2011-10-15 10:51:42

标签: php jquery string replace

我想做什么:

我有一个带有id的div。每当“>”我希望用“>>”替换它。我还想在div前面添加“你在这里:”。

实施例

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

上下文:

我的div包含bbPress的breadcrumb链接,但我正在尝试将其格式与我用于WordPress的site-wode面包屑插件相匹配。 div在PHP中被称为函数,并以HTML格式输出。

我的问题:

我是否使用Javascript PHP替换符号,如何首先调用div的内容?

3 个答案:

答案 0 :(得分:1)

找到生成&lt;的代码,并设置适当的选项(breadcrumb_separator左右)或修改php代码以更改分隔符。

使用JavaScript修改所谓的静态文本不仅是一个维护噩梦,非常脆弱,并且可能导致奇怪的渲染(因为用户看到你的网站在他们的系统很慢的情况下被修改),但是在没有浏览器的情况下也无法工作(或禁用)JavaScript支持。

答案 1 :(得分:0)

你可以使用CSS添加你在这里的文字:

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

浏览器支持:
http://www.quirksmode.org/css/beforeafter_content.html

您可以更改&gt;到&gt;&gt;用javascript:

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

我不建议改变这样的内容,这真是太烂了。如果可能的话,你最好更改breadcrumb插件的输出渲染。在Wordpress中,这应该是可行的。

答案 2 :(得分: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