尝试用<span>(x)</span>
替换列表元素中的(x)但我无法正确,它复制了第一个元素
我的代码是:
jQuery(document).ready(function($){
"use strict";
$(".widget_categories li").each(function(){
$(this).html($(".widget_categories li").html().replace(/(\([^)]+\))/, "<span>$1</span>"));
});
});
答案 0 :(得分:1)
当您尝试替换html时,您可能希望获得单个元素,而不是所有元素。而不是
$(this).html($(".widget_categories li").html().replace(/(\([^)]+\))/, "<span>$1</span>"));
更改为
$(this).html($(this).html().replace(/(\([^)]+\))/, "<span>$1</span>"));
示例(请注意,我转发span
标记只是为了更容易查看结果)
$(function(){
$(".widget_categories li").each(function () {
var newValue = $(this).html().replace(/(\([^)]+\))/, "<span>$1</span>");
$(this).html(newValue);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="widget_categories">
<li>foo (x) bar</li>
</ul>