首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

js获取repeater的行数解决办法

2013-07-26 
js获取repeater的行数我有一个repeater其中每行都有2个div a和b 现在要在前台实现点击a或者b可以互相交替

js获取repeater的行数
我有一个repeater
其中每行都有2个div a和b 
现在要在前台实现点击a或者b可以互相交替显示。比如点击div a 显示div b 点击div b显示div a这样交替。(只有一个div显示。另一个不显示或者说隐藏掉)

问题来了
创建repeater时候,用奇偶行模板,每行的div a 和div b都是相同的id。
如:


<asp:Repeater ID="rp" runat="server">
        <HeaderTemplate >
        <table>        
        <tr>
        <td >11</td>
        </tr>
        </HeaderTemplate>
        <ItemTemplate>
        <tr>
        <td><div id="a" onclick ="viewdivb()">内容</div> <div id="b" onclick ="viewdivb()">内容</div></td>
        </tr>
        </ItemTemplate> 
        <AlternatingItemTemplate>
        <tr>
        <td><div id="a" onclick ="viewdivb()">内容</div> <div id="b" onclick ="viewdivb()">内容</div></td>
        </tr> 
        </AlternatingItemTemplate>
        <FooterTemplate>                
        </table>
        </FooterTemplate>
        </asp:Repeater>



但是实际效果是,无论点击哪一行,都只在第一行显示交替。而不是所在行。比如点击第2行中的div,却在第一行的diva和b之间交替。点击低3行也是。。。第n行也是。。永远都在第一行。
不知道如何用js实现判断我点击的是哪个行中的div,在所在行进行交替。
用了比较多的方法。比如判断div 的状态。但是都是失败了。
请教
[解决办法]
id全部换为name="a"或"b"
$(function(){


   $("a[name='a'][name='b']").click(function(){
       $(this).hide();
       if($(this).attr("name")=="a"){
           $(this).next().show();           
       }else
       {
           $(this).prev().show();
       }
   });
});
[解决办法]
$('table').find('div').removeAttr('onclick').eq(0).click(viewdivb).eq(1).click(viewdiva);
[解决办法]

$('table').find('tr').removeAttr('onclick').each(function() {
  $(this).find('div').eq(0).click(viewdivb);
  $(this).find('div').eq(1).click(viewdiva);
});

或者

$('table').find('div').removeAttr('onclick').filter('even').click(viewdivb).filter('odd').click(viewdiva); 

热点排行