使用jquery隐藏使用转发器创建的表行

时间:2012-08-31 22:19:52

标签: jquery asp.net

我创建了一个带有转发器的表,即使用itemtemplate和alternatingtemplate。 项目模板创建 tabelrow标记,交替模板关闭 tablerow标记

这是一个例子(我将进一步提供代码)
单元格1到3由itemtemplate创建,4到6由交替模板创建。

单元格1-3具有data_id 5
单元格4-6具有data_id 2
下一行
单元格1-3具有data_id 7
单元格4-6具有data_id 3

看起来像这样 用转发器创建第一个循环
| 小区1 | _Cell2_ | 小区3 | _Cell4_ | Cell5 | _Cell6_ |
用转发器创建第二个循环
| 小区1 | _Cell2_ | 小区3 | _Cell4_ | Cell5 | _Cell6_ |

最终结果 | 小区1 | _Cell2_ | 小区3 | _Cell4_ | Cell5 | _Cell6_ | | 小区1 | _Cell2_ | 小区3 | _Cell4_ | Cell5 | _Cell6_ |

我的问题是我想用Jquery隐藏某些TD。假设我想用data-id = 2隐藏所有TD,即第4到第6行的单元格。

如何在不破坏表格结构的情况下实现这一目标,最好是移动这样的一切。

摆脱第4至第6行的细胞

| 小区1 | _Cell2_ | 小区3 | _Cell4_ | Cell5 | _Cell6_ |
| 小区1 | _Cell2_ | 小区3 | _Cell4_ | Cell5 | _Cell6_ |

这是我删除后的样子..
| 小区1 | _Cell2_ | 小区3 |
| 小区1 | _Cell2_ | 小区3 | _Cell4_ | Cell5 | _Cell6_ |

我希望它看起来像这样 | 小区1 | _Cell2_ | 小区3 || 小区1 | _Cell2_ | 小区3 |
| 小区4 | _Cell5_ | Cell6 |

这甚至可能吗?

这是我的代码..

    <asp:Repeater ID="Repeater1" runat="server">
    <HeaderTemplate>

    <table cellspacing="0">
    <thead>
    <tr>
     <th scope="col" abbr="Sidor/Artiklar" class="nobg">Sidor/Artiklar</th>
     <th scope="col" abbr="Dual 1.8GHz">MozRank</th>
     <th scope="col" abbr="Dual 1.8GHz">PR</th>
     <th scope="col" abbr="Dual 1.8GHz">Fri tillgång</th>
     <th scope="col" abbr="Dual 2GHz">30 Artiklar(1 om dagen)</th>
     <th scope="col" colspan="2" abbr="Dual 2.5GHz">Välj själv</th>
     <th scope="col" abbr="Sidor/Artiklar" class="nobg">Sidor/Artiklar</th>
     <th scope="col" abbr="Dual 1.8GHz">MozRank</th>
     <th scope="col" abbr="Dual 1.8GHz">PR</th>
     <th scope="col" abbr="Dual 1.8GHz">Fri tillgång</th>
     <th scope="col" abbr="Dual 2GHz">30 Artiklar(1 om dagen)</th>
     <th scope="col" colspan="2" abbr="Dual 2.5GHz">Välj själv</th>
    </tr>
    </thead>
    </HeaderTemplate>

     <AlternatingItemTemplate>

    <th scope="row" class="spec"><%# DataBinder.Eval(Container.DataItem, "namn_domain")%> </th>
    <td class="alt" data_id='<%# DataBinder.Eval(Container.DataItem, "pr_domain")%>'> 
    <%# DataBinder.Eval(Container.DataItem, "moz_domain")%>
    </td>
    <td class="alt" data_id='<%# DataBinder.Eval(Container.DataItem, "pr_domain")%>'> 
    <%# DataBinder.Eval(Container.DataItem, "pr_domain")%>       
    </td>
    <td class="alt" data_id='<%# DataBinder.Eval(Container.DataItem, "pr_domain")%>'> 
    <input type='<%# DataBinder.Eval(Container.DataItem, "type_domain")%>' name='<%# DataBinder.Eval(Container.DataItem, "idtag_domain")%>' value='<%# DataBinder.Eval(Container.DataItem, "faccess_domain")%>' onclick="calculatePrice();disableTB(this.name);" /> "Fri tillgång" 
    </td>
    <td class="alt" data_id='<%# DataBinder.Eval(Container.DataItem, "pr_domain")%>'>
    <input type="radio" name='<%# DataBinder.Eval(Container.DataItem, "idtag_domain")%>' value='<%# DataBinder.Eval(Container.DataItem, "monthly_domain")%>' onclick="calculatePrice();disableTB(this.name);" /> "En artikel om dagen (30/mån)"
    </td>
    <td class="alt" data_id='<%# DataBinder.Eval(Container.DataItem, "pr_domain")%>'>
    <input type="radio" name='<%# DataBinder.Eval(Container.DataItem, "idtag_domain")%>' value="0"  onclick="calculatePrice();enableTB(this.name, this.checked)" />  "Skriv ditt antal själv"
    </td>
    <td class="alt" data_id='<%# DataBinder.Eval(Container.DataItem, "pr_domain")%>'>
    <input type="text"  name='<%# DataBinder.Eval(Container.DataItem, "moz_domain")%>' id='<%# DataBinder.Eval(Container.DataItem, "idtag_domain")%>'  Enabled="false" Width="40px" onkeyup="calculatePrice()" style="background-color:#eeeeee" /> 
    </td>

    </tr>
    </AlternatingItemTemplate>

    <ItemTemplate>


    <tr>

    <th scope="row" abbr="Model" class="spec"><%# DataBinder.Eval(Container.DataItem, "namn_domain")%>   </th>
    <td class="alt" data_id='<%# DataBinder.Eval(Container.DataItem, "pr_domain")%>'>
    <%# DataBinder.Eval(Container.DataItem, "moz_domain")%>
    </td>
    <td class="alt" data_id='<%# DataBinder.Eval(Container.DataItem, "pr_domain")%>'>
    <%# DataBinder.Eval(Container.DataItem, "pr_domain")%>       
    </td>
    <td class="alt" data_id='<%# DataBinder.Eval(Container.DataItem, "pr_domain")%>'>
    <b></b>
    <input type='<%# DataBinder.Eval(Container.DataItem, "type_domain")%>' name='<%# DataBinder.Eval(Container.DataItem, "idtag_domain")%>' value='<%# DataBinder.Eval(Container.DataItem, "faccess_domain")%>' onclick="calculatePrice();disableTB(this.name);" /> "Fri tillgång" 
    </td>
    <td class="alt" data_id='<%# DataBinder.Eval(Container.DataItem, "pr_domain")%>'>  
    <input type="radio" name='<%# DataBinder.Eval(Container.DataItem, "idtag_domain")%>' value='<%# DataBinder.Eval(Container.DataItem, "monthly_domain")%>' onclick="calculatePrice();disableTB(this.name);" /> "En artikel om dagen (30/mån)"
    </td>
    <td class="alt" data_id='<%# DataBinder.Eval(Container.DataItem, "pr_domain")%>'> 
    <input type="radio" name='<%# DataBinder.Eval(Container.DataItem, "idtag_domain")%>' value="0"  onclick="calculatePrice();enableTB(this.name, this.checked)" />  "Skriv ditt antal själv"
    </td>
    <td class="alt" data_id='<%# DataBinder.Eval(Container.DataItem, "pr_domain")%>'>
    <input type="text"  name='<%# DataBinder.Eval(Container.DataItem, "moz_domain")%>' id='<%# DataBinder.Eval(Container.DataItem, "idtag_domain")%>'  Enabled="false" Width="40px" onkeyup="calculatePrice()" style="background-color:#eeeeee" /> 
    </td>



    </ItemTemplate>
    <FooterTemplate>
    </table>
    </FooterTemplate>
    </asp:Repeater>

这是我的jquery,只是搞乱了解功能,所以这段代码显然不正确     function hidetd(){

for(var i = 0; i < 2; i++) {
    $("[data_id=" + i + "]").hide();
}
}

1 个答案:

答案 0 :(得分:1)

在您的情况下,

对于循环不是必需的。以下jQuery代码段将隐藏所有 td 元素,其属性为 data_id = 2

<script type="text/javascript">
  var i = 2;
  $(document).ready(function() {
    $("td[data_id='"+ i +"']").hide();
  });
</script>