jquery - 如何使用 jQuery 将 HTML 表格转换为 <div> 表格?

标签 jquery html

我怎样才能将 HTML 表格(我将在下面提供代码)转换为 <div>元素?长话短说,我正在使用将内容输出到 HTML 表格中的 PHP 脚本,事实证明编辑 PHP 并将表格元素转换为 <div> 非常困难。的。下面是 HTML 表格代码:

<table><tbody><tr data-marker="0"><td class="mapp-marker"><img class="mapp-icon" src="http://www.walmartchicago.com/wp-content/plugins/mappress-google-maps-for-wordpress/icons/walmart-yellow.png"></td><td><b>Walmart Neighborhood Market<br></b><a href="#" class="poi_list_directions">Get Directions</a></td></tr><tr data-marker="1"><td class="mapp-marker"><img class="mapp-icon" src="http://www.walmartchicago.com/wp-content/plugins/mappress-google-maps-for-wordpress/icons/walmart-red.png"></td><td><b>Walmart Express<br></b><a href="#" class="poi_list_directions">Get Directions</a></td></tr><tr data-marker="2"><td class="mapp-marker"><img class="mapp-icon" src="http://www.walmartchicago.com/wp-content/plugins/mappress-google-maps-for-wordpress/icons/walmart-red.png"></td><td><b>Walmart Express<br></b><a href="#" class="poi_list_directions">Get Directions</a></td></tr><tr data-marker="3"><td class="mapp-marker"><img class="mapp-icon" src="http://www.walmartchicago.com/wp-content/plugins/mappress-google-maps-for-wordpress/icons/walmart-blue.png"></td><td><b>Walmart Supercenter<br></b><a href="#" class="poi_list_directions">Get Directions</a></td></tr><tr data-marker="4"><td class="mapp-marker"><img class="mapp-icon" src="http://www.walmartchicago.com/wp-content/plugins/mappress-google-maps-for-wordpress/icons/walmart-blue.png"></td><td><b>Walmart Supercenter<br></b><a href="#" class="poi_list_directions">Get Directions</a></td></tr></tbody></table>

最佳答案

无需遍历元素和复制属性,只需将表格内容作为字符串提取并运行简单的字符串替换...

$('table').replaceWith( $('table').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")
);

...或者,如果您想要一个无序列表...

$('table').replaceWith( $('table').html()
   .replace(/<tbody/gi, "<ul id='table'")
   .replace(/<tr/gi, "<li")
   .replace(/<\/tr>/gi, "</li>")
   .replace(/<td/gi, "<span")
   .replace(/<\/td>/gi, "</span>")
   .replace(/<\/tbody/gi, "<\/ul")
);

这也将保留您的类和属性。

也许最好的解决方案不是 jQuery 相关,而是 PHP ...您可以使用 PHP 的 str_replace() 来做同样的事情,只是在从 PHP 输出之前?

$table_str = //table string here
$UL_str = str_replace('<tbody', '<ul id="table"', $table_str);
$UL_str = str_replace('<tr', '<li', $UL_str);
$UL_str = str_replace('</tr', '</li', $UL_str);
$UL_str = str_replace('<td', '<span', $UL_str);
$UL_str = str_replace('</td', '</span', $UL_str);
$UL_str = str_replace('</tbody', '</ul"', $UL_str);

关于jquery - 如何使用 jQuery 将 HTML 表格转换为 <div> 表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9229856/

相关文章:

javascript - 如何使用 AngularJS 向行添加单击和双击控件?

javascript - 客户端模板、服务器端模板还是客户端原始克隆和编辑 stub DOM 元素?

image - 允许背景图像表现得像 <img>

javascript - 调用 OnChange 时运行 jquery 函数

javascript - 推送菜单 - 如何推送 body

html - Tomcat 总是给出 404

javascript - 当我们在asp.net中有相同用户控件的多个实例时,如何获得正确的控件ID?

javascript - Jquery 从 XML 自动完成(多个值)

javascript - 如何在鼠标移出时隐藏 div?

html - svg 宽度和高度内的图像无法按预期工作