用数字替换表中的逗号点
Replace dots with comma in a table with numbers
我有一个表,里面装满了来自AJAX调用的数据,所有这些数据(包括数字和字符串)都像往常一样插入td和tr标记中。我需要用逗号替换小数中的所有点,但我不想手动调用每个中的方法"replacewith()"。我想到了这样的东西:
$( document ).ready() {
$(#"<tr>").isNumeric().replaceWith('.', ',');
}
这样,当页面收费时,jquery会自动检测表单元格中的数字,并用逗号替换它们的数字。
我甚至不知道这个想法是否可行。。。不过,你有什么建议吗?
试着给你的表一个行为类,然后在文档准备中使用这样的东西:
$(function() {
$('.myTable td').each(function () {
if($.isNumeric($(this).html())) {
$(this).html($(this).html().replace('.', ','));
}
});
});
jsfiddle在这里:https://jsfiddle.net/wtzkbm7n/
当元素添加到页面中时,无法自动检测。您可以使用AJAX全局事件来检测何时进行AJAX调用,并使用计时器等待结果得到处理,但这意味着您必须为每个AJAX调用检查页面中的所有表单元格,在单元格得到纠正之前会有一段延迟,而且它仍然无法覆盖所有情况。
手动调用函数是一项额外的工作,但这是最可靠、最有效的方法
您可以使用要处理的元素来调用函数。这样就不必浏览整个页面中的所有表格单元格。
查找表单元格而不是表行。您应该查看单元格中的节点,而不仅仅是替换其中的任何内容,否则您可能会混淆实际上不是文本的代码部分。要处理嵌套元素,您可以为任何不是文本节点的节点递归调用函数。
示例:
function fixPeriods(elements) {
elements.contents().each(function(i, el){
if (el.nodeType == 3) {
if ($.isNumeric(el.data)) {
el.data = el.data.replace(/'./g, ',');
}
} else {
fixPeriods($(el));
}
});
}
fixPeriods($('#Bjursta td'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table id="Bjursta">
<tr><td>3.14</td><td>4.5<b>2.3</b>1.8</td></tr>
<tr><td>1.337</td><td>Not a number.</td></tr>
<tr><td>7.65</td><td>127.0.0.1</td></tr>
</table>
相关文章:
- 如何替换JavaScript字符串中除字母和数字之外的所有内容(空格/符号)
- 用数字单位替换字符串的一部分
- 正则表达式 jquery 将数字替换为链接
- Javascript正则表达式,用被操纵的数字替换数字
- Jquery/PunBB将数字替换为字符串
- 如何在谷歌可视化api柱状图中使用的json对象内用数字替换字符串值
- 立即工作并将所有英文数字替换为阿拉伯数字的函数
- 将所有出现的科学数字替换为常规数字
- JavaScript正则表达式 - 用四舍五入的数字替换字符串中的所有浮点数
- 将分数替换为分数正则表达式,将数字替换为数字正则表达式
- 使用与使用string.replacement()的字符串相似的数字替换字符串
- 用数字替换表中的逗号点
- 需要一个输入数字替换
- 将url末尾的数字替换为递增的值
- Javascript - Regex:如何用相同的id加数字替换字符串中的id
- JavaScript:将json中的月份数字替换为月份名称
- 将数字替换为星号javascript/jquery
- 如何将正文中的数字替换为波斯数字
- 将数字转换为双十进制,在JavaScript中将数字替换为12个字母中的一个
- JavaScript - 用数字替换一些字母