我想获得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>
&#13;
答案 0 :(得分:0)
你需要这样做:
当您执行$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);
答案 1 :(得分:0)
通过这种方式,您将获取不是find方法的HTML元素,即jQuery方法:
const $this = $(this)[0]; // returns the HTML element
将该行更改为:
const $this = $(this);
你的错误就会消失。