当我执行onClick事件时,我正在尝试将数据推入数组。
function clickCard() {
$(document).on('click', '.card', function() {
$(this).addClass('visible');
var cardValue = $(this).attr('src');
matchOrNot.push(cardValue);
})
}
我正在尝试将图像的src放入数组中,它必须是我单击的特定图像(this)。希望有道理。
尝试此操作时,我得到变量“ matchOrNot”的“未定义”。
如果我使用符号[0]作为目标选择器,但我想获取它,则此功能有效。
有任何想法吗?
答案 0 :(得分:1)
像这样吗?
var A = []
$('.card').on('click', e => {
let $this = $(e.currentTarget)
$this.addClass('visible')
let cardValue = $this.attr('src');
A.push(cardValue);
console.log(A)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<img class="card" src="https://dummyimage.com/100x100/000/fff" />
<img class="card" src="https://dummyimage.com/100x100/fff/000" />
更新:
看到您的代码后,我遇到了问题。不是matchOrNot
未定义,而是src
属性,因为您当前的目标不是图像而是外部div
。您需要先找到图像:
$this.find('img').attr('src')
答案 1 :(得分:0)
使用$(this)
时,您尝试使用类.card访问对象src,最快的解决方案是使用$('#id')
获取图像src。
答案 2 :(得分:0)
当DOM准备好进行交互时,给定的click事件(即,类为'card'
的元素上的click事件应该被注册,并且该事件的位置是$(document).ready()方法)。
请在准备事件中包装$(document).on
。
这应该可以解决问题。