前端加载table时,根据条件判断a标签是否显示(使用动态id)

本文介绍了在前端加载table时如何根据条件决定a标签是否显示。关键步骤包括设置动态id,如id="detailnew_' + i + '",在render方法后获取动态id的值,例如$("#detailnew_" + i + "").show()。通过在ajax返回值中判断并设置全局变量,或者利用display属性结合变量isDisplay来控制a标签的显示状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       for (let i = 0; i < datanew.length; i++) {

            let trItem = $('<tr></tr>');
            trItem.append('<td hidden>' + datanew[i].cid + '</td>');
            trItem.append('<td>' + datanew[i].cname + '</td>');
            trItem.append('<td hidden>' + datanew[i].pid + '</td>');
            trItem.append('<td><a href="#" class="proLink"  name="' + datanew[i].pid + '">' + datanew[i].pname + '</a> <a href="#" class="proDetail" style="color: #61d4a7" id="detail">' + '  详情' + '</a> </td>');
            trItem.append('<td hidden>' + datanew[i].epicid + '</td>');
            trItem.append('<td><a href="#" class="epicLink" name="' + datanew[i].pid + '" value="' + datanew[i].epicid + '">' + datanew[i].epicname + '<a href="#" class="childEpicDetail" style="color: #FFDE75"  id="detailnew_' + i + '"  hidden>' + '  子Epic' + '</a> </td>');
            trItem.append('<td>' + datanew[i].priority + '</td>');
            trItem.append('<td>' + datanew[i].completely + '</td>');
            trItem.append('<td>' + datanew[i].issuessum + '</td>');
            trItem.append('<td>' + datanew[i].doneissuesnum + '</td>');
            trItem.append('<td>' + datanew[i].undoissuesnum + '</td>');
            trItem.append('<td>' + datanew[i].undoissueswithsprint + '</td>');
            trItem.append('<td>' + datanew[i].undoissueswithbacklog + '</td>');
            trItem.append('<td>' + datanew[i].startdate + '</td>>');
            trItem.append('<td>' + datanew[i].enddate + '</td>>');
            trItem.append('<td>' + datanew[i].datascope + '</td>>');
            $('#epicTb').append(trItem);

            //如果有子Epic,则显示子Epic的详情 20180925
            isHaveChildEpic(datanew[i].epicid);
            if (isCheckChild == true) {
                $("#detailnew_" + i + "").show();
            }
        }
function isHaveChildEpic(epicid) {
    $.ajax({
        type: 'get',
        url: portUrl + ':8005/jira/isHaveChildEpic',
        data: {
            'epicid': epicid
        },
        success: function (result) {
            if (result > 0) {
                isCheckChild = true;
            }
            else {
                isCheckChild = false;
            }
        },
        error: function (error) {
            $('#overlay')[0].style.display = 'none';
            showInfo('获取错误!');
        },
        async: false
    });
}

使用方法

1、设置动态id为:  id="detailnew_' + i + '"

2、获取动态id的值: $("#detailnew_" + i + "").show();

      注意:获取动态id的值一定要在render方法 加载方法之后去取。

3、代码块二,是判断是否为符合条件的

      注意:在ajax的返回值里,进行判断,是设置了全局变量的值。

4、还有一种实现方式,是使用display的值。

     简单说明如下

     trItem.append('<td> <a href="#" class="childEpicDetail" style="color: #FFDE75;display: '+isDisplay +'">' + ' 子Epic' + '</a>  </td>');

     设置style里面的 display为变量值。

     let isDisplay='none';

     if(isHaveChildEpic(datanew[i].epicid )) {

      isDisplay = 'block';

     }

前端展示表格数据通常涉及到响应用户状态变化或动态数据加载。当你需要在表格中根据不同的条件或状态显示内容,可以采用以下几种常见的方法: 1. **JavaScript**: 使用`if...else`或`switch`语句检查当前的状态变量,并基于该状态更新表格的数据。例如,你可以设置一个变量表示筛选条件,然后过滤表格中的行,只显示符合条件的记录。 ```javascript let status = '未处理'; // 假设这是一个状态变量 function displayTable(data) { let filteredData = data; if (status === '已处理') { filteredData = data.filter(item => item.status === '已完成'); } else if (status === '待审核') { filteredData = data.filter(item => item.status === '待审'); } // 渲染表格 renderTable(filteredData); } //... ``` 2. **React.js**: 利用组件的`state`管理状态并触发`render`函数。当状态改变,会自动更新表格内容。 ```jsx class DataTable extends React.Component { state = { status: '未处理' }; handleStatusChange = (newStatus) => { this.setState({ status: newStatus }); } render() { const { data } = this.props; return ( <table> {this.state.status === '已处理' ? data.filter(item => item.status === '已完成').map(item => <tr key={item.id}>...</tr>) : data.map(item => <tr key={item.id}>...</tr>)} </table> ); } } //... ``` 3. **Vue.js**: 类似于React,通过计算属性(`computed`)或watcher来监听状态变化。 ```vue <template> <table> <tbody v-for="item in displayedData" :key="item.id"> ... </tbody> </table> </template> <script> export default { computed: { displayedData () { return this.data.filter(item => item.status === this.status) } }, props: ['data', 'status'], watch: { status (newStatus) { this.$nextTick(() => { this.displayedData = this.data.filter(item => item.status === newStatus); }); } } } </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值