我正在使用最新的Jquery和以下脚本:
<script type="text/javascript">
$(document).ready(function(){
var el = $('.title');
el.html(el.html().replace(/\./gi, " "));
});
</script>
这是div:
<div class="title">The.quick.brown.fox</div>
它的作用是用DIV中的空格替换所有带有“标题”类的空格点,这对于这项工作来说真的很好。
但是我有很多DIV,它们具有相同的“标题”类,其中包含不同的字符串,我需要它们全部用空格替换点。但是这里出现的问题就是所有我得到的是所有这些DIV上的相同结果字符串“快速棕色狐狸”,而所有结果字符串应该是不同的,因为所有源字符串都不同......
如何在所有DIV中使用类“title”和每个DIV中的所有不同字符串替换点?
由于
答案 0 :(得分:5)
您可以使用each()迭代匹配的元素,或将函数传递给html()并在那里计算新文本:
$(document).ready(function() {
$(".title").html(function(index, currentHtml) {
return currentHtml.replace(/\./gi, " ");
});
});
答案 1 :(得分:2)
只需使用jQuery each
方法迭代类.title
的所有元素:
$(document).ready(function(){
$('.title').each(function(){
$(this).html($(this).html().replace(/\./gi, " "));
});
});
答案 2 :(得分:1)
只要您的div中只有文本,建议的功能就可以正常工作。但是,要允许任意html(如The.quick.brown <img src='fox.jpg'>
),代码应该更准确。
$('.title').each(function() {
if (this.nodeType == 3)
this.nodeValue = this.nodeValue.replace(/\./g, " ");
else
$(this).contents().each(arguments.callee);
});
基本上,您递归迭代节点的所有后代并仅替换类型为3(= text)的节点。