検索

ホームページ  >  に質問  >  本文

javascript 获取DOM节点的困惑,谢谢大神详解

DOM结构如下

现在需求是获取id为main p里面的p class名字是 p1的全部隐藏,但是不要 class是p2的p隐藏,如何做呢?

PHPzPHPz2896日前449

全員に返信(7)返信します

  • ringa_lee

    ringa_lee2017-04-10 14:42:23

    $('#main .p1').hide()
    

    是这样吗?

    返事
    0
  • PHP中文网

    PHP中文网2017-04-10 14:42:23

    var parent = document.getElementById('main');
    var children = parent.getElementsByTagName('p');
    var re = new RegExp('\\bp1\\b', 'i');
    
    for(var i = 0; i < children.length; i++){
        var child = children[i];
        if(re.test(child.className)){
            child.style.display = 'none';
        }
    }
    

    返事
    0
  • ringa_lee

    ringa_lee2017-04-10 14:42:23

    你还是不会使用jq的筛选器
    给你举个例子:

    地球-->#main
    女人-->p1
    男人-->p2

    你想让地球上的女人都躺下

    $("地球 女人").躺下( );

    对应jquery代码$("#main .p1").hide();

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-10 14:42:23

    直接取id啊,莫非你的页面有相同的id?

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-10 14:42:23

    $("#main .p1").filter(".p2").hide()

    返事
    0
  • 怪我咯

    怪我咯2017-04-10 14:42:23

    这种问题其实只要把选择器的相关资料阅读下不就知道了,不会应该先找google查资料,这边的回答大部分只会针对这个问题去回答,而你可能是对这部分只是都有短板

    $('#main .p1').hide()
    

    返事
    0
  • PHPz

    PHPz2017-04-10 14:42:23

    window.onload=function(){
            var ap=document.getElementById("main").children;
            for(var i=0;i<ap.length;i++){
                if(ap[i].className=="p1")
                    ap[i].style.display=ap[i].style.display=="none"?"block":"none";
            }
        }
        
    

    返事
    0
  • キャンセル返事