那些年朋友劝,该知道的ASP.NET - jQuery查找HTML中某个节点并赋单击事件,同时取出节点中的值?

//以下有个菜单,实现取出<a>节点中的值取赋click事件。
<div id="menu">
        <div class="has_childrenMain">
            <span>第1章-认识jQuery</span> <a>1.1-JavaScript和JavaScript库</a> <a>1.2-加入jQuery</a>
            <a>1.3-编写简单jQuery代码</a> <a>1.4-jQuery对象和DOM对象</a> <a>1.5-解决jQuery和其它库的冲突</a> <a>1.6-jQuery开发工具和插件</a>
            <a>1.7-小结</a>
        </div> 
    </div>


//在网上查啊,找啊….(此处省略N个小时), 
    $( '.has_childrenMain' ).each( 
    function ( i ) {
        $( this ).click( 
    function () {
        var val = $( this ).find( 'a' ).eq( i ).text();
        alert( val );
    } );
    } );
//好不容易找到了一段代码,试试了,只显示第0个值。“第1章-认识jQuery” ,
//无耐的很只能进入while(查找中…),没有找到不过想通了,修改了一下代码:
    $( '.has_childrenMain' ).find( 'a' ).each( 
    function ( i ) {
        $( this ).click( 
        function () {
            var val = $( this ).text();
            alert( val );
        }        );
    }    );


//回头再看了一下第一段代码:
$( '.has_childrenMain' ).each( //each只是找到1个或N个类为has_childrenMain的节点
$( this ).click( //这里的$( this )是==<div class="has_childrenMain">
var val = $( this ).find( 'a' ).eq( i ).text(); 
//在<div class="has_childrenMain">中去查找<a>那只能是找到第一个了,终于找到错误了

取代码进行了修改,本想说是重构的,想了算了吧 偷笑

    $( 'div.has_childrenMain>a' ).each( 
        function ( i ) {
            $( this ).click( 
        function () {
            var val = $( this ).text();
            alert( val );
        } );
        } );



你可能感兴趣的:(那些年朋友劝,该知道的ASP.NET - jQuery查找HTML中某个节点并赋单击事件,同时取出节点中的值?)