jquery:查找并替换匹配模式的所有id属性

时间:2014-07-18 12:29:49

标签: javascript jquery html regex

问题:

我正在尝试在复选框上获取搜索过滤器。所以每次点击一个复选框时,结果都会相应显示。因此,要显示结果,我目前正在使用$('#editor-master').html('');清除页面,其中editor-master是最外层的元素。我在<script=text/template>内有一个空的类似html片段,所以你们都知道浏览器会忽略这些内容。所以,对于我的结果,我克隆了这段html代码,如下所示:

$newTemplate = $template.clone();

$ newTemplate将有:

            <div class="featured-box featured-box-primary">
                <div class="box-content">
                    <div class="editor">                    
                        <div class="row">
                            <div class="col-md-12">
                                <div class="col-md-9 text-left">
                                    <h4 id="username||id||" value=""></h4>
                                    <i class="icon icon-star"></i>
                                    <i class="icon icon-star"></i>
                                    <i class="icon icon-star"></i>
                                    <i class="icon icon-star"></i>
                                    <i class="icon icon-star-o"></i>
                                    <p class="ratings">
                                    </p>

                                </div>
                                <div class="col-md-3" id="||editor_id||">
                                    <span id="favorite||id||" class="userstar user-favorite-stars"></span>
                                    <span class="usericon"><i class="icon icon-user"></i></span>    
                                </div>
                            </div>                            
                        </div>
                        <div class="row margin-bottom-10">
                            <div class="col-md-12">
                                <dl>
                                    <dt>Credentials</dt>
                                    <dd class="margin-bottom-10" id="credentials||id||"></dd>
                                    <dt>Specialties</dt>
                                    <dd class="margin-bottom-10" id="editor_specialties||id||"></dd>
                                    <dt>No of Words</dt>
                                    <dd class="margin-bottom-10"></dd>
                                    <dt>Description</dt>
                                    <dd id="self_description||id||"></dd>
                                     <!--dt>Approval Date</dt>
                                    <dd id="approval_date||id||"></dd-->
                                </dl>
                                <div class="col-md-12 margin-top-10">
                                    Unavailable until 
                                </div>
                                <div class="col-md-6 margin-top-10">
                                    <a href="" class="btn btn-primary btn-sm" id="submit_doc||id||">Submit a Document</a>
                                </div>
                                <div class="col-md-6 margin-top-10">
                                    <a href="" class="btn btn-primary btn-sm">Free Sample Edit</a>
                                </div>

                            </div>
                        </div>
                    </div>
                </div>
            </div>

我试图找到所有匹配|| id ||的id属性并用循环中递增的数字替换它,以及|||| editor_id ||||

到目前为止,我已经尝试了,

$target = $("#editor-master");
$newTemplate.appendTo($target);
$target.replace(/||id||/g,j);
$target.replace(/||editor_id||/g,value.editor.id);
$target.find('h4').text(value.username);

$target = $("#editor-master");
$target.append($newTemplate.toString().replace(/||id||/g, j));

哪个不起作用。 感谢。

编辑回答&#34; sb&#34;的问题: 首先将html字符串化,替换匹配的字符串并将其恢复为原始html:所以这里$target.append(t)是我正在寻找的html内容。

            var t = $newTemplate.get(0).outerHTML;
            t = t.replace(/\|\|id\|\|/g,j);
            t = t.replace(/\|\|editor_id\|\|/g,value.editor.id);
            //append to target, which will render the html with replaced values.
            $target.append(t);

1 个答案:

答案 0 :(得分:2)

|是一个特殊字符,必须进行转义:\|

例如,在"aa||id||bb"中,您可以找到||id||的{​​{1}}

使用正则表达式时,您可以随时使用Lea Verou http://leaverou.github.io/regexplained/等工具来帮助您。