jquery实现递归table-tr

来源:互联网 发布:python爬虫爬取微信 编辑:程序博客网 时间:2024/05/20 19:15



将文件代码保存到本地html中下载demo,引入js下载jquery.1.83.min.js看效果。

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>    <title>jquery实现递归table-tr</title>    <style type="text/css">        /*表格*/        .table{border-collapse: collapse; word-break: keep-all; border:1px solid Black;}        .table.borgray{ border:1px solid #dfdfdf;}        .table th, .table td{border: 0;padding: 5px; font-size:12px;}         .table.borgray th,.table.borgray td{ border:1px solid #dfdfdf;}        .table .th{height: 20px;border: 1px solid windowtext; padding: 0 2pt 0 2pt; background-color: #fff; }         .table .td{border: 1px solid windowtext;}         .table tr.dashed>th,.table tr.dashed>td{ border-style:dashed;}         .table tr.dotted>th,.table tr.dotted>td{ border-style:dotted;}         .table .th.dashed,.table .td.dashed{ border-style:dashed;}         .table .th.dotted,.table .td.dotted{ border-style:dotted;}         .table .td.gray{color: #999;}        .w100 {width: 100%;}        .mag20 {margin: 20px;}    </style>    <script src="jquery-1.8.3.min.js"></script>    <script type="text/javascript">        $(function () {            var $node_array = new Array();            var $tr; var $tr_index; var $td; var $top; var $find_tr            var $level; var $pcpid; var $scpid;            var $t_level; var $t_pcpid; var $t_scpid;            //更换零配件/重新组合零配件            $("#btnchange").live("click", function () {                $tr = $(this).parent().parent(); //btnchange<td<tr                $tr_index = $tr.index();                $td = $(this).parent(); //btnchange>td                $level = $tr.attr("bom-level"); //层级                $pcpid = $tr.attr("bom-pcpid"); //父级ID                $scpid = $tr.attr("bom-scpid"); //当前ID                //恢复所有外框,取消虚线                $(".tbBomItem tbody:first").children('tr').removeClass("dashed"); //.tbBomItem>tbody>tr>td                //待更换配件表格部分外框虚线显示                $tr.addClass("dashed"); //btnchange<td<tr<td                $node_array = new Array();                $node_array.push($tr_index);                FindChildNode($level, $scpid); //递归所有tr子节点,并添加class-dashed                alert("tr-index:" + $node_array);            });            //重置组合            $("#btnreset").live("click", function () {                //恢复外框,取消虚线                $(".tbBomItem tbody:first").children("tr").removeClass("dashed");            });            //递归tr,获取所有子节点并返回tr-index的Array            //level 当前层级            //pcpid 当前scpid            function FindChildNode(level, pcpid) {                var $f_tr = $(".tbBomItem tbody:first").children("tr[bom-level=" + (parseInt(level) + 1) + "][bom-pcpid=" + pcpid + "]");                $f_tr.each(function (i) {                    var $f_level = $(this).attr("bom-level"); //当前层级                    var $f_scpid = $(this).attr("bom-scpid"); //当前scpid                    $(this).addClass("dashed"); //当前行,边框虚线显示                    $node_array.push($(this).index());                    FindChildNode($f_level, $f_scpid); //递归所有子节点                });            }        });    </script></head><body><pre>根据bom-scpid,查找所有bom-pcpid=bom-scpid的tr子节点,递归将tr-index写入Array,并返回Array<tr bom-level="1" bom-pcpid="78618" bom-scpid="78621">BCB3-130矿用隔爆型插销连接器;index:2</tr><tr bom-level="2" bom-pcpid="78621" bom-scpid="78622">DXK直变器;index:3</tr><tr bom-level="2" bom-pcpid="78621" bom-scpid="78623">DXK控制电源;index:4</tr></pre>    <table class="tbBomItem table w100 mag_b20" cellspacing="0" cellpadding="0" align="center">        <tbody>            <tr>                <td class="th" colspan="11" align="center">                    2.5T蓄电池式电机车                </td>            </tr>            <tr align="center">                <td class="th" style="width: 5%" nowrap="">                    序号                </td>                <td class="th" style="width: 5%" nowrap="">                    ChildNodes                </td>                <td class="th" style="width: 10%" nowrap="">                    BOM类型                </td>                <td class="th" nowrap="">                    层级                </td>                <td class="th" style="width: 10%" nowrap="">                    产品类型                </td>                <td class="th" nowrap="">                    产品名称                </td>                <td class="th" style="width: 10%" nowrap="">                    规格型号                </td>                <td class="th" style="width: 10%" nowrap="">                    计量单位                </td>                <td class="th" style="width: 10%" nowrap="">                    订货数量                </td>                <td class="th" style="width: 10%" nowrap="">                    订货单价                </td>                <td class="th" style="width: 10%" nowrap="">                    合计                </td>            </tr>            <tr bom-level="1" bom-pcpid="78618" bom-scpid="78621">                <td class="td" nowrap="" align="center">                    1                </td>                <td class="td bom-content" style="position: relative; color: #999;" nowrap="" align="center">                    <a href="javascript:;" id="btnchange">获取</a>                </td>                <td class="td" nowrap="" align="center">                    零部件                </td>                <td class="td" nowrap="" align="center">                    1                </td>                <td class="td" nowrap="" align="center">                    电器配件                </td>                <td class="td" nowrap="">                    BCB3-130矿用隔爆型插销连接器                </td>                <td class="td" nowrap="" align="center">                    SPEC                </td>                <td class="td" nowrap="" align="center">                    件                </td>                <td class="td" nowrap="" align="center">                    1                </td>                <td class="td" nowrap="" align="center">                    ¥299.00                </td>                <td class="td" nowrap="" align="center">                    ¥299.00                </td>            </tr>            <tr bom-level="2" bom-pcpid="78621" bom-scpid="78622">                <td class="td" nowrap="" align="center">                    2                </td>                <td class="td bom-content" style="position: relative; color: #999;" nowrap="" align="center">                    <a href="javascript:;" id="btnchange">获取</a>                </td>                <td class="td" nowrap="" align="center">                    零部件                </td>                <td class="td" nowrap="" align="center">                    2                </td>                <td class="td" nowrap="" align="center">                    电器配件                </td>                <td class="td" nowrap="">                    DXK直变器                </td>                <td class="td" nowrap="" align="center">                    SPEC                </td>                <td class="td" nowrap="" align="center">                    件                </td>                <td class="td" nowrap="" align="center">                    1                </td>                <td class="td" nowrap="" align="center">                    ¥199.00                </td>                <td class="td" nowrap="" align="center">                    ¥199.00                </td>            </tr>            <tr bom-level="2" bom-pcpid="78621" bom-scpid="78623">                <td class="td" nowrap="" align="center">                    3                </td>                <td class="td bom-content" style="position: relative; color: #999;" nowrap="" align="center">                    <a href="javascript:;" id="btnchange">获取</a>                </td>                <td class="td" nowrap="" align="center">                    零部件                </td>                <td class="td" nowrap="" align="center">                    2                </td>                <td class="td" nowrap="" align="center">                    电器配件                </td>                <td class="td" nowrap="">                    DXK控制电源                </td>                <td class="td" nowrap="" align="center">                    SPEC                </td>                <td class="td" nowrap="" align="center">                    件                </td>                <td class="td" nowrap="" align="center">                    1                </td>                <td class="td" nowrap="" align="center">                    ¥100.00                </td>                <td class="td" nowrap="" align="center">                    ¥100.00                </td>            </tr>            <tr>                <td class="td" colspan="2" align="center">                    <a href="javascript:;" id="btnreset">重置Table</a>                </td>                <td class="td" colspan="8" align="left">                                     </td>                <td class="td" align="center">                    <label id="lblTotalPrice">                        ¥299.00                    </label>                </td>            </tr>        </tbody>    </table></body></html>


原创粉丝点击