我有一个Javascript代码,它将数字格式化为货币.所有内容都在桌面上.目前,我money每个人都有一个班级,<tr>当细胞改变时我会调用该函数.仅供参考,所有单元格在表格中同时更改.
var spans = document.getElementsByClassName("money");
for (var i = 0; i < spans.length; i++) {
var newText = spans[i].innerHTML.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
spans[i].innerHTML = newText;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法,而不是在每个单元格上都有相同的类,并在所有单元格上捕获一个事件,在桌面上执行并获得相同的结果?例如,
$("#mytable").on('change', function() {
// put my function here and apply to every cell
});
Run Code Online (Sandbox Code Playgroud)
更新:我添加了DOMSubtreeModified并尝试遍历表中的每个单元格.但是,即使我在控制台上没有任何错误,它似乎也不起作用.
<script type="text/javascript">
$("#resultstable").bind("DOMSubtreeModified", function() {
$('#resultstable tr').each(function() {
$('td').each(function (i, cell) {
cell.innerHTML.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
});
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
尝试使用DOMSubtreeModified,
$("#mytable").bind("DOMSubtreeModified", function() {
alert("Hurrey table changed");
});
Run Code Online (Sandbox Code Playgroud)
$(function(){
$('button').on('click',function(){
$('#mytable').append('<tr><td>Next '+($('#mytable tr').length+1)+'</td></tr>');
});
$("#mytable").bind("DOMSubtreeModified", function() {
alert("Hurrey table changed");
});
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="mytable">
<tr>
<td>Next 1</td>
</tr>
</table>
<br/>
<button>Test</button>Run Code Online (Sandbox Code Playgroud)