这是jQuery:
<script type="text/javascript">
$(document).ready(function(){
var relName;
$('.child').each(function() {
relName = $(this).attr('rel');
relName.replace('&','');
$(this).attr('rel', relName);
$(this).appendTo('#' + $(this).attr('rel'));
});
});
</script>
使用这个相关的HTML:
<div rel="MadDogs&EnglishmenHandpaintedfigurines" id="Figurines" class="category section child">
<h3 class="categoryTitle">Figurines</h3>
</div>
但由于某种原因,替换没有任何效果!
答案 0 :(得分:8)
replace
返回包含替换数据的字符串。所以你需要指回你的变量。
relName = relName.replace('&','');
答案 1 :(得分:3)
replace()
不会更改原始字符串,而是返回一个新字符串。
答案 2 :(得分:2)
它没有更新,因为你没有将结果分配给任何东西。
请改为尝试:
$(this).attr('rel', relName.replace('&',''));
答案 3 :(得分:2)
使用基本上每个jQuery方法的{s> attr
的callback version来编写它是一种巧妙的方法:
$(document).ready(function() {
$('.child').attr('rel', function(i, relName) {
$(this).appendTo('#' + relName);
return relName.replace('&','');
});
});