我试图了解 jquery 中 find() 和最接近 () 之间的区别。以下是我使用 jquery 的简单代码。*这只是一个虚拟表格。我只是想了解它们之间的区别。所以不要想我要用这个简单的表格做什么。*
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
function myFunction(){
var form = $("div#d1").find("form").attr("action");
var form1 = $("div#d1").closest("form").attr("action");
alert(form+form1);
}
</script>
</head>
<body>
<div id="d1">
<p id="p1">Click on this paragraph.</p>
<p id="p2">Click on this paragraph.</p>
<form id="f1" action="aaa">
<input type="text" value="submit">
</form>
<form id="f2" action="bbbbb">
<input type="text" value="submit">
</form>
<form id="f3" action="ccb">
<input type="text" value="submit">
</form>
<input type="submit" value="submit" onclick="myFunction()">
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我单击提交按钮时,var form1值显示为未定义。谁能告诉我为什么它显示为未定义?还有什么时候我应该使用最近的()和查找()。
closest()是向上树,进入父元素,包括当前元素。find()正从树上下来,看着孩子们,还有孩子们的孩子们:
var form1 = $("input").closest("form").attr("action");
Run Code Online (Sandbox Code Playgroud)