我有一个带有id的div。每当“>”我希望用“>>”替换它。我还想在div前面添加“你在这里:”。
<div id="bbp-breadcrumb">Home > About > Contact</div>
我的div包含bbPress的breadcrumb链接,但我正在尝试将其格式与我用于WordPress的site-wode面包屑插件相匹配。 div在PHP中被称为函数,并以HTML格式输出。
我是否使用Javascript PHP替换符号,如何首先调用div的内容?
答案 0 :(得分:1)
找到生成<
的代码,并设置适当的选项(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('>').join('>>').split('>').join('>>')
我不建议改变这样的内容,这真是太烂了。如果可能的话,你最好更改breadcrumb插件的输出渲染。在Wordpress中,这应该是可行的。
答案 2 :(得分:0)
您可以使用正则表达式来匹配面包屑内容..对其进行更改...并将其放回上下文中.. 检查这是否对您有所帮助:
$the_existing_html = 'somethis before<div id="bbp-breadcrumb">Home > About > 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('>', '>>', $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