如何将alt attr从转换后的对象转换为元素

时间:2017-05-21 18:53:59

标签: javascript jquery

我想获得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;
&#13;
&#13;

2 个答案:

答案 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); 

你的错误就会消失。