Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 隐藏父项`<;div>;`如果子级没有元素`<;ul>` …_Javascript_Jquery - Fatal编程技术网

Javascript 隐藏父项`<;div>;`如果子级没有元素`<;ul>` …

Javascript 隐藏父项`<;div>;`如果子级没有元素`<;ul>` …,javascript,jquery,Javascript,Jquery,使用JQuery或JavaScript,如果元素不存在,如何隐藏整个id=“I”元素 试试这个: <div id="I"> <h3></h3> <div class="C"> <ul>...</ul> </div> </div> 试试这个: <div id="I"> <h3></h3> <div cla

使用JQuery或JavaScript,如果元素
不存在,如何隐藏整个
id=“I”
元素

试试这个:

<div id="I">
    <h3></h3>
    <div class="C">
        <ul>...</ul>
    </div>
</div>

试试这个:

<div id="I">
    <h3></h3>
    <div class="C">
        <ul>...</ul>
    </div>
</div>

您可以使用以下Jquery来确定id为=“I”的div中是否存在ul元素

编辑:

我已经更新了我的脚本,因为如果您有多个id为“I”的div标记,它将无法工作。根据您的描述,您希望删除id为“I”且不包含ul元素的所有div标记。以下是满足您问题要求的更新JSFIDLE:

下面是执行此操作的代码:

$(document).ready(function(){
var size = $("#I ul").length;

if (size === 0)
    $("#I").hide();
});

您可以使用以下Jquery来确定id为=“I”的div中是否存在ul元素

编辑:

我已经更新了我的脚本,因为如果您有多个id为“I”的div标记,它将无法工作。根据您的描述,您希望删除id为“I”且不包含ul元素的所有div标记。以下是满足您问题要求的更新JSFIDLE:

下面是执行此操作的代码:

$(document).ready(function(){
var size = $("#I ul").length;

if (size === 0)
    $("#I").hide();
});


UL总是嵌套在另一个div中吗?您尝试过什么吗?UL总是嵌套在另一个div中吗?您尝试过什么吗?这只适用于子级的直系子级,否?这只适用于子级的直系子级,否?这也不起作用。也许是因为#I块本身是使用脚本加载的@j08691“#I块本身是使用脚本加载的”然后不要在doc ready上执行此操作,请确保在加载#I之后执行此代码。如果需要,可以删除专门查找id为“I”的元素的逻辑。这将删除所有内部没有ul元素的div。当然,您需要调整逻辑以满足您的需要。这也不起作用。也许是因为#I块本身是使用脚本加载的@j08691“#I块本身是使用脚本加载的”然后不要在doc ready上执行此操作,请确保在加载#I之后执行此代码。如果需要,可以删除专门查找id为“I”的元素的逻辑。这将删除所有内部没有ul元素的div。当然,您需要调整逻辑以满足您的需要。
$.fn.isNot = function(trueFalse) {
    var elem = $(this);
    var _isNot = elem.is("*");
    var _parent = $(elem.selector.split(" ").slice(0, 1)[0]);
    return  _isNot 
            ? trueFalse(_isNot, elem, _parent) 
            : trueFalse(_isNot, _parent)
};

$("#I ul").isNot(function(trueFalse, parent) {
    console.log(trueFalse, parent);
    if (!trueFalse) {
        parent.hide()
    };
});