各位,我被一件事困住了.我在JQuery中有类似于这样的代码. 而那些点击的下半部分,我就是无法从点击的元素中获得data-num属性.我try 了100种方法,但总是没有定义(但如果我通过开发工具判断元素,这个‘data-num’确实存在),或者崩溃,或者不起作用.

let tumbArr = [];
for (x = 0; x < imgARR.length; x++) {
    let thumb = document.createElement('button');
    $(thumb).css('background-image', 'url(' + images[x].src +')');
    elements.append(thumb);
    $(thumb).attr('id', 'thumb' + x)
    $(thumb).attr('data-num', x);
    tumbArr[x] = $(thumb);
    $(thumb).attr('class', 'thumbs');    
}
$('#thumbCase').append(elements);

// this part bellow
$('.thumbs').click(()  =>  {
    s = $(this).attr('data-num');
    imgSet(s);
})

当我制作一款TODO应用程序时,一切都是这样运作的……

addButton.click(() => {
    clickCount++;
    let newLI = document.createElement('li');
    newLI.textContent = addIN.value;
    elements.append(newLI);
    ul.append(elements);
    $(newLI).addClass('donePlan');
    $(newLI).attr('id','plan' + clickCount );
   
    del = document.createElement('button');
    $(del).addClass('delbutton');
    $(del).html('<img src="./delete_ic_icon.png">');
    newLI.append(del);
    $(del).attr('data-plan', '#plan' + clickCount)
   ** let planID = $(this.del).attr('data-plan');
    
   
    $(del).click (()=> {
        $(planID).remove();**
    })
   
})

请帮帮我,谢谢你

我试着让.humbs类像变量一样,以 Select 按钮为例,我在一个循环中用这个按钮做了一个数组umbArr[x]=$(Thumb),但它不能像我想的那样工作,而且我认为它在逻辑上应该能工作.

推荐答案

  • 您可以使用一个箭头函数,其中this的工作方式不同.箭头函数中的this是外部范围的this.因此,您应该在箭头函数中使用Event::currentTarget而不是this,或者使用通常的function(){}.

  • 似乎您试图将点击事件委托给父容器.thumbs.在本例中,this将是容器的DOM元素,处理程序将对所有点击做出react ,而您只需要点击按钮.您应该使用特殊的委托函数签名,这样this就会指向所单击的按钮.

因此,箭头功能选项:

$('.thumbs').on('click', 'button', event => {
    s = $(event.currentTarget).attr('data-num');
    imgSet(s);
})

功能选项:

$('.thumbs').on('click', 'button', function() {
    s = $(this).attr('data-num');
    imgSet(s);
})

Jquery相关问答推荐

jQuery:在mousemove事件期间检测按下的鼠标按钮

为什么对同一个 ASP.NET MVC 操作的多个同时 AJAX 调用会导致浏览器阻塞?

jQuery:获取所选单选按钮的父 tr

JavaScript 中的循环计时器

调用 jquery ajax - .fail vs. :error

jQuery .hide() 和 .css("display", "none") 的区别

如何同时使用 requireJS 和 jQuery?

将每 3 个 div 包装在一个 div 中

JQuery Ajax Post 导致 500 内部服务器错误

触发下拉更改事件

CORS POST 请求可以使用纯 JavaScript,但为什么不使用 jQuery?

使用 jQuery 比较两个 Javascript 对象数组

如何使用 jQuery 删除 cookie?

在jQuery中获取CSS规则的百分比值

在未实现接口 FormData 的对象上调用附加

如何淡出显示:inline-block

如何获取第一个元素而不是在 jQuery 中使用 [0]?

如何在 ReactJS 中使用 JQuery

如何使用 bootstrap 中的 selectpicker 插件在 Select 时设置选定值

jQuery 将换行符转换为 br (nl2br 等效)