Javascript 在带有数字的表格中,用逗号替换点
我有一个表,其中充满了来自AJAX调用的数据,所有这些数据(数字和字符串)都像往常一样插入到td和tr标记中。 我需要用逗号替换十进制数字中的所有点,但我不想在每个数字中手动调用“replacewith()”方法。 我想到了这样的事情:Javascript 在带有数字的表格中,用逗号替换点,javascript,jquery,html,Javascript,Jquery,Html,我有一个表,其中充满了来自AJAX调用的数据,所有这些数据(数字和字符串)都像往常一样插入到td和tr标记中。 我需要用逗号替换十进制数字中的所有点,但我不想在每个数字中手动调用“replacewith()”方法。 我想到了这样的事情: $( document ).ready() { $(#"<tr>").isNumeric().replaceWith('.', ','); } $(document).ready(){ $(#“”).isNumeric().replaceme
$( document ).ready() {
$(#"<tr>").isNumeric().replaceWith('.', ',');
}
$(document).ready(){
$(#“”).isNumeric().replacement为(',',');
}
因此,当页面计费时,jquery会自动检测表单元格中的数字,并用逗号替换它们的数字
我甚至不知道这个想法是否可行……但是,你有什么建议吗?当元素添加到页面时,无法自动检测。您可以使用AJAX全局事件来检测何时进行AJAX调用,并使用计时器等待结果得到处理,但这意味着您必须为每个AJAX调用检查页面中的所有表单元格,在更正单元格之前会有一个延迟,并且它仍然不能覆盖所有情况 手动调用函数是一些额外的工作,但这是最可靠、最有效的方法 您可以使用要处理的元素调用函数。这样,您就不必查看整个页面中的所有表格单元格 查找表格单元格而不是表格行。您应该查看单元中的节点,而不仅仅是替换单元中的任何节点,否则您将有可能弄乱代码中并非文本的部分。要处理嵌套元素,可以递归调用函数以处理非文本节点的任何节点 例如:
函数固定周期(元素){
elements.contents()。每个(函数(i,el){
if(el.nodeType==3){
如果($.isNumeric(el.data)){
el.data=el.data.replace(/\./g',,');
}
}否则{
固定期间($(el));
}
});
}
固定期间($)代码>
3.144.52.31.8
1.337不是一个数字。
7.65127.0.0.1
尝试为您的表提供一个行为类,然后在document ready中使用类似的内容:
$(function() {
$('.myTable td').each(function () {
if($.isNumeric($(this).html())) {
$(this).html($(this).html().replace('.', ','));
}
});
});
请点击此处:
jQuery实际上有一个isNumeric()-函数
。你可以在每一行的文本内容中调用它。但我要避免的是:将我放在每一行的上下文中…我只想编写一次这个函数,并在包含表select all
with$(“yourTable”).children(“tr”)的页面开头调用它
从表中选择,并通过$.each()进行迭代。是否仅为数字字段将“.”替换为“.”?在所有的tr htmls中?是的,没错。目前我正在尝试:$(“ddtable”).children(“td”).each().isNumeric().replacetwith(“,”,“)代码>,但它似乎不起作用这一个看起来更容易!我也试过这个,但还是不行。但问题可能是整个项目,它比我的方式更复杂。所以,在这一点上,我将按照Guffa的建议,在我需要的地方调用函数。谢谢大家