有没有办法让我们不要单选按钮,而是自动执行javascript?
我看到我正在使用.click
函数,需要使用哪个命令来自动执行它?
谢谢你的建议。
$(document).ready(function () {
$("input[name='change_last_first']").click(function () {
$(".name").each(function() {
var revName = $(this).text().split(" ").reverse().join(" ");
$(this).text(revName);
});
});
});
function name(str) {
return(str.replace(/,/g,''));
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input name="change_last_first" value="first" type="radio" >First Last,
<table>
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name">Willis, James</td>
</tr>
<tr>
<td class="name">Handson Willis</td>
</tr>
<tr>
<td class="name">Anderson, Sarah</td>
</tr>
<tr>
<td class="name">Pandora, Jim</td>
</tr>
</tbody>
</table>
答案 0 :(得分:2)
要使其在加载时起作用,只需删除click()
处理程序,然后将each()
逻辑直接放在document.ready处理程序中即可。
话虽如此,您可以通过为text()
提供一个对集合中所有元素进行迭代的函数来改善逻辑。此函数接受元素的当前文本值作为参数,您可以对其进行修改并用于返回新值。最后,您可以用逗号或空格split()
来删除文本,以便删除当前代码在某些情况下留下的结尾逗号。
话虽如此,尝试一下
jQuery(function($) {
$(".name").text(function(i, t) {
return t.split(/,|\s/).reverse().join(" ");
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<thead>
<tr><th>Name</th></tr>
</thead>
<tbody>
<tr><td class="name">Willis, James</td></tr>
<tr><td class="name">Handson Willis</td></tr>
<tr><td class="name">Anderson, Sarah</td></tr>
<tr><td class="name">Pandora, Jim</td></tr>
</tbody>
</table>