在这段代码中,我希望在所有div元素都显示为空之后,将段落文本更改为凶手。在此问题中,段落文本变为凶手,只有div元素之一显示为空。我知道我可以使用if语句并给出display:none的条件,然后再运行该函数,但是如果有一百个div元素呢?这只是一个有趣的实验,我需要一种有效的方法。



<!doctype html>
<html>
<head>
    <title>Learning jQuery</title>

    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <style>
    	#green {
    		width:200px;
    		height:200px;
    		background-color:green;
    		border-radius:50%;
    		margin-top:50px;
    	}
    	.red {
    		width:200px;
    		height:200px;
    		background-color:red;
    		margin-top:50px;
    	}
    </style>
</head>

<body>
	<div id="green"></div>
	<div class="red"></div>
	<div class="red"></div>
	<h1 id="murder">Hello</h1>
	<script>
		$("murder").html("murderer!");
		$("div").click(function() {
			$(this).css("display", "none");
			if ($("div").css("display") == "none") {
				$("#murder").html("murderer!");
			}
		});
	</script>
</body>
</html>

最佳答案

使用jQuery的:visible选择器:

if($("div:visible").length == 0) {
  // Do stuff
}

关于javascript - 当所有div元素都设置为显示时运行功能:无,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34675304/

10-10 06:54