考虑存储在数据库表中的以下代码:
<section id="aids" data-toggle="collapse" data-target="#aids2" class="SecCon">
<h2><span class="label label-primary"><small><span class="only-collapsed glyphicon glyphicon-chevron-down"></span><span class="only-expanded glyphicon glyphicon-remove-sign"></span></small> Aids</span></h2>
<div id="aids2" class="collapse in article">
<p>Some text.</p>
</div>
</section>
我想简化它,就像这样...
<section id="directions">
<h2>Directions</h2>
<div><p>Some text.</p></div>
</section>
<section id="ecology">
<h2>Ecology</h2>
<div><p>Some text.</p></div>
</section>
然后我想使用PHP,jQuery,正则表达式或其他任何东西填写缺少的id,类和glyphicons。
我有一个jQuery脚本 - 请参阅Using regex + str_replace to prep tags for jQuery - 这项工作非常出色,但有一些并发症。我仍然在努力,但我认为它可能更好1)使用正则表达式和/或str_replace完成整个事情,或2)继续使用jQuery脚本,但使用某种正则表达式和/或str_replace创建“二级ID”。
一些细节......
在用户通过单击标题来切换打开或关闭的部分之前,每个部分都必须具有与以下div的ID匹配的数据目标值,如下所示...
<section id="aids" data-toggle="collapse" data-target="#myvalue" class="SecCon">
<h2>Header</h2>
<div id="myvalue">
我遇到了包含多个单词的标题的多个问题。我可以修改jQuery脚本,以便标题“第二次世界大战的历史”创建ID-世界历史战争ii和次要ID世界历史战争ii2,但那些有点复杂。我还发现了一些额外的并发症。我更喜欢我的原始方案 - 手动创建部分ID(在这种情况下为“历史记录”)。
所以这是我的问题:
你知道如何编写一个可以替换jQuery脚本的正则表达式吗?如果没有,有没有办法使用PHP和/或正则表达式简单地给每个数据目标和div ID 1)一个匹配的值,2)一个连续的字母值(例如a,b,c)? / p>
换句话说,显示屏现在看起来像这样:
<section id="ecology" data-toggle="collapse" data-target="#a" class="SecCon">
<h2>Ecology</h2>
<div id="a">
<p>Some text</p>
</div>
<section>
<section id="principles" data-toggle="collapse" data-target="#b" class="SecCon">
<h2>Principles of Ecology</h2>
<div id="b">
<p>Some text</p>
</div>
<section>
然后我可以继续一起使用jQuery脚本和PHP / regex修饰符。
(抱歉这个令人费解的问题;我不知道如何更简单地解释它。)