我想获取div 孩子的 alt,但控制台日志 $this.find 不是一个函数。
const $ClickedCells = $(".board__cell--black");
function pawnMove() {
const $this = $(this)[0];
const $thisPawn = $this.find("img");
console.log($thisPawn);
}
$ClickedCells.on("click", pawnMove);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="board__cell--black"><img src="#" alt="lorem"></div>
<div class="board__cell--black"><img src="#" alt="lorem1"></div>
<div class="board__cell--black"><img src="#" alt="lorem2"></div>
<div class="board__cell--black"><img src="#" alt="lorem3"></div>
<div class="board__cell--black"><img src="#" alt="lorem4"></div>
通过这种方式,您正在获取没有 find 方法的 HTML 元素,即 jQuery 方法:
const $this = $(this)[0]; // returns the HTML element
将该行更改为:
const $this = $(this);
你的错误就会消失。
你需要这样做:
当你执行$this = $(this)[0];
时,你会得到没有定义查找的HTML元素。您需要在 $(this)
上调用 find((。 $(this)
表示find()
可用的jQuery元素。
const $ClickedCells = $(".board__cell--black");
function pawnMove() {
//const $this = $(this)[0];//<---Comment out this line
const $thisPawn = $(this).find("img");
onsole.log($thisPawn[0].alt);
}
$ClickedCells.on("click", pawnMove);