如何为选中的项准备xml结构数据

How to prepare xml structure data for the checked items?

本文关键字:xml 结构 数据      更新时间:2023-09-26

我坚持小需求。这是一张有复选框的桌子。在这里,我想检查行并点击提交。我想显示以下中的xml结构化数据

<event>
    <count>2</count>
    <row>
        <evendid>test1</eventid>
    </row>
    <row>
        <evendid>test2</eventid>
    </row>
</event> 

我尝试了以下代码,

 $(".multipleData tbody tr").each(function() {
        bodyRowSet = bodyRowSet + "<row>";
        $(this).find('td checkbox').each(function() {                       
            $td = $(this);
            var tdValue = $(this).find("checkbox:checked").val();
            bodyRowSet = bodyRowSet +  tdValue;  
        });
        bodyRowSet = bodyRowSet + "</row>";
    });
    xml = xmlStart + xmlFirstRowSet + bodyRowSet+xmlLast;

这是Fiddle

您可以找到被检查的输入元素,然后循环这些元素:

var elements = $(".multipleData tr td input:checked");

然后,对于每个找到的选中项目,从td:中获取html

var tdValue = $(this).parent().next('td').html().trim();

也许这可以帮助你:

$(document).ready(function(){
    $("#idXmlData").click(function(){
        var xmlStart =  "<?xml version='"1.0'" encoding='"UTF-8'">";
        var xmlFirstRowSet = "<event>";
        var xmlLast="</event>";
        var headerRowSet='';
        xmlFirstRowSet = xmlFirstRowSet + headerRowSet;
        var bodyRowSet ='';
        var elements = $(".multipleData tr td input:checked");
        var size = elements.size();
        bodyRowSet = bodyRowSet + "<count>" + size + "</count>";
        elements.each(function() {
            var tdValue = $(this).parent().next('td').html().trim();
            bodyRowSet = bodyRowSet + "<row><eventid>";
            bodyRowSet = bodyRowSet +  tdValue;
            bodyRowSet = bodyRowSet + "</eventid></row>";
        });
        var xml = xmlStart + xmlFirstRowSet + bodyRowSet+xmlLast;
        window.alert(xml);
    });
});

Fiddle