将此替换为on.each函数jQuery

将此替换为on.each函数jQuery,jquery,html,Jquery,Html,我有这样一个简单的代码: $('#tblPrice').replaceWith( $('#tblPrice').html() .replace(/<tbody/gi, "<div id='table'") .replace(/<tr/gi, "<div") .replace(/<\/tr>/gi, "</div>") .replace(/<td/gi, "<span") .replace(/<\/td

我有这样一个简单的代码:

$('#tblPrice').replaceWith( $('#tblPrice').html()
   .replace(/<tbody/gi, "<div id='table'")
   .replace(/<tr/gi, "<div")
   .replace(/<\/tr>/gi, "</div>")
   .replace(/<td/gi, "<span")
   .replace(/<\/td>/gi, "</span>")
   .replace(/<\/tbody/gi, "<\/div")
   );
$('tblPrice')。替换为($('tblPrice').html()
.替换(/
我有多个id为
tblPrice
的表

这是您的问题..JavaScript将停止查找它找到的第一个匹配ID。请修改
#tblPrice
表,使所有表都有不同的ID,但为每个表指定一个类似的类,然后使用类选择器而不是ID选择器

例如:

<table class="tblPrice" id="tblPrice1">
    ...
</table>
<table class="tblPrice" id="tblPrice2">
    ...
</table>
出于上述相同原因,您还需要更改HTML替换中的
id=“table”
。请改用类:

.replace(/<tbody/gi, "<div class='table'")
。替换(/
我有多个id为
tblPrice
的表

这是您的问题..JavaScript将停止查找它找到的第一个匹配ID。请修改
#tblPrice
表,使所有表都有不同的ID,但为每个表指定一个类似的类,然后使用类选择器而不是ID选择器

例如:

<table class="tblPrice" id="tblPrice1">
    ...
</table>
<table class="tblPrice" id="tblPrice2">
    ...
</table>
出于上述相同原因,您还需要更改HTML替换中的
id=“table”
。请改用类:

.replace(/<tbody/gi, "<div class='table'")

.replace(/只需在所有表中获取一个class属性,并放入以下代码:-

$('.tblPrice').each(function() {
    var $this = $(this);
    $this.replaceWith($this.html() ... );
});

只需在所有表中获取一个class属性,并输入以下代码:-

$('.tblPrice').each(function() {
    var $this = $(this);
    $this.replaceWith($this.html() ... );
});

ID在DOM中应该是唯一的。即使您使用
。这里的每个
方法,每次都只会使用ID获取第一个元素

我建议改用class,将它们添加到所有表中,如
myTable
,并修改代码,如:

$('.myTable').replaceWith(function () {
    return $(this).html()
        .replace(/<tbody/gi, "<div id='table'")
        .replace(/<tr/gi, "<div")
        .replace(/<\/tr>/gi, "</div>")
        .replace(/<td/gi, "<span")
        .replace(/<\/td>/gi, "</span>")
        .replace(/<\/tbody/gi, "<\/div");
});
$('.myTable').replaceWith(函数(){
return$(this.html())

.replace(/ID在DOM中应该是唯一的。即使您使用
。此处的每个
方法,您每次都只能使用ID获取第一个元素

我建议改用class,将它们添加到所有表中,如
myTable
,并修改代码,如:

$('.myTable').replaceWith(function () {
    return $(this).html()
        .replace(/<tbody/gi, "<div id='table'")
        .replace(/<tr/gi, "<div")
        .replace(/<\/tr>/gi, "</div>")
        .replace(/<td/gi, "<span")
        .replace(/<\/td>/gi, "</span>")
        .replace(/<\/tbody/gi, "<\/div");
});
$('.myTable').replaceWith(函数(){
return$(this.html())
.替换(/)如评论所述

$(".tblPrice").each(function() { 
$(this).replaceWith( $(this).html()
.replace(/<tbody/gi, "<div id='table'")
.replace(/<tr/gi, "<div")
.replace(/<\/tr>/gi, "</div>")
.replace(/<td/gi, "<span")
.replace(/<\/td>/gi, "</span>")
.replace(/<\/tbody/gi, "<\/div")
);
});
$(“.tblPrice”).each(function(){
$(this.replaceWith($(this.html)()
.替换(/)如评论所述

$(".tblPrice").each(function() { 
$(this).replaceWith( $(this).html()
.replace(/<tbody/gi, "<div id='table'")
.replace(/<tr/gi, "<div")
.replace(/<\/tr>/gi, "</div>")
.replace(/<td/gi, "<span")
.replace(/<\/td>/gi, "</span>")
.replace(/<\/tbody/gi, "<\/div")
);
});
$(“.tblPrice”).each(function(){
$(this.replaceWith($(this.html)()

.replace(/您可以更改表及其子元素的样式,使其行为类似于div和span,而不是使用jquery进行替换

比如说,

table, tr, tbody{
    display: block;  /* div */
    /* other css styles */
}

td{
    display: inline; /* span */
    /* other css styles */
}

当然,这并不会完全改变表元素,但它可能会帮助您实现您实际想要实现的目标。

您可以改变表及其子元素的样式,使其行为类似于div和span

比如说,

table, tr, tbody{
    display: block;  /* div */
    /* other css styles */
}

td{
    display: inline; /* span */
    /* other css styles */
}


当然,这不会完全改变表元素,但它可能会帮助您实现实际的目标。

您的页面上应该只有一个ID实例。首先将其更改为类,然后使用
$(“.className”).each(function(){});
将该id设为类。然后使用每个。html是其他web的输出,因此它已经用该id进行了处理。我应该如何将id更改为类?那么我如何才能将id属性更改为classname?如果它们是页面上唯一的表,那么您可以简单地将它们称为
$(“表”)
页面上应该只有一个ID实例。首先将其更改为类,然后使用
$(“.className”)。每个(函数(){});
将该id设为类。然后使用每个。html是其他web的输出,因此它已经用该id进行了处理。我应该如何将id更改为类?那么我如何才能将id属性更改为classname?如果它们是页面上唯一的表,那么您可以简单地将它们称为
$(“表”)
添加类将有助于..$('tblPrice')。addClass('pricelist'))是否正确?@Onimax no您需要手动更改HTML。同一页面上不能有两个具有相同ID的元素。这是无效的。@Onimax no-在标记中添加类并删除重复ID。这需要在将页面提供给浏览器之前完成。添加类将有助于..$('#tblPrice')。addClass('pricelist'))是否正确?@Onimax no您需要手动更改HTML。同一页面上不能有两个具有相同ID的元素。这是无效的。@Onimax no-在标记中添加类并删除重复ID。这需要在将页面提供给浏览器之前完成。实际上,我正在使用此代码,例如通过
计数单元格TD
用于更正。我正在更改驻留在
TD
上的那些表元素,这样它就不会被计算。@Onimax然后您可以使用jquery向这些元素添加一个新类。这个类将执行与我在上面的帖子中建议的相同的操作。我如何通过它添加另一个类?您能否至少给我一个简单的示例,说明如何o通过此ID属性添加类名。实际上,出于更正目的,我使用此代码对
TD
的单元格进行计数。我正在更改驻留在
TD
上的那些表元素,因此它不会被计数。@Onimax然后,您可以使用jquery向这些元素添加一个新类。此类将按照我的建议执行如何通过它添加另一个类?你能给我一个关于如何通过这个ID属性添加类名的简单例子吗