Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在带有数字的表格中,用逗号替换点_Javascript_Jquery_Html - Fatal编程技术网

Javascript 在带有数字的表格中,用逗号替换点

Javascript 在带有数字的表格中,用逗号替换点,javascript,jquery,html,Javascript,Jquery,Html,我有一个表,其中充满了来自AJAX调用的数据,所有这些数据(数字和字符串)都像往常一样插入到td和tr标记中。 我需要用逗号替换十进制数字中的所有点,但我不想在每个数字中手动调用“replacewith()”方法。 我想到了这样的事情: $( document ).ready() { $(#"<tr>").isNumeric().replaceWith('.', ','); } $(document).ready(){ $(#“”).isNumeric().replaceme

我有一个表,其中充满了来自AJAX调用的数据,所有这些数据(数字和字符串)都像往常一样插入到td和tr标记中。 我需要用逗号替换十进制数字中的所有点,但我不想在每个数字中手动调用“replacewith()”方法。 我想到了这样的事情:

$( 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的建议,在我需要的地方调用函数。谢谢大家