该表的类名如下:
dsdds_image
,dfdd_image
,sdadsa_title
,dsdf_title
,3434_description
,48fd_description
。
它们只是下划线之前的随机字符串。你将如何用" placeholder"替换所有这些随机字符串?在jQuery中,它们变为placeholder_title
,placeholder_image
,placeholder_description
?
HTML:
<button id="cleartable">Clear</button>
<table class="toptable">
<tr>
<th class="dsdds_image">1</th>
<th class="r3dde_image">2</th>
<th class="s43434_image">3</th>
</tr>
<tr>
<td class="44665_description">4</td>
<td class="3434d_description">5</td>
<td class="a34df_description">6</td>
</tr>
<tr>
<td class="dfs4rf_title">7</td>
<td class="adf43df_title">8</td>
<td class="dsffds4_title">9</td>
</tr>
</table>
我失败的尝试
$("#cleartable").click(function() {
$(".toptable td,.toptable th").each(function() {
var changeclass = $(this).attr("class");
changeclass.replace(/^[^_]+/,"placeholder");
});
});
答案 0 :(得分:1)
你可以这样做:
$("#cleartable").click(function() {
$(".toptable td,.toptable th").each(function() {
var changeclass = $(this).attr("class");
$(this).attr('class',changeclass.replace(/^[^_]+/,"placeholder"));//See this?
});
});
.replace
为您提供了一个新字符串,不会更改原始字符串。所以,你需要在某个地方重新分配它。
答案 1 :(得分:1)
这样的事情似乎更容易
$('#cleartable').on('click', function () {
$('td, th', '.toptable').attr('class', function(_, klass) {
return 'placeholder_' + klass.split('_').pop();
});
});
答案 2 :(得分:1)
将您的代码更改为
$("#cleartable").click(function() {
$(".toptable td,.toptable th").each(function() {
$(this).attr("class", changeclass.replace(/^[^_]+/,"placeholder"));
});
});
因为您没有将替换的类分配回选择的元素