javascript - 如何使用 "this"从所选项目中检索 id

标签 javascript jquery html

我是 jQuery/javascript 新手。我尝试了在这个论坛上找到的一些建议,但到目前为止没有帮助。

这就是我正在尝试的:

从数据库加载类别时(使用ajax),将为每个类别添加此 HTML 语句:

$("#Links ul").append('<li id=\"cat' + i + '" data-catid=' + i + '>' + categorie_tekst[1] + '</li>');

使用 F12 我发现线条已正确添加。

例如<li id="cat3" data-catid="3">Seafood </li>

下一步是在屏幕中选择一个类别,并使用为 data-catid 设置的值检索该类别的产品。

有人告诉我我可以“this.id”,但到目前为止还没有运气。使用警报显示 this.id 的值会返回正确的值,但由于某种原因我无法使用它。

当我在代码中添加 (#cat3).attr(“data-catid”) 时,它可以工作。但像这样的不同选项不起作用:

("#cat"+ this.id).attr(“data-catid”) 
(this).attr(“data-catid”)
var x = $(this).id();
var rest = x.substr(4, 1);

所有带有“this”的内容都会产生错误:Uncaught TypeError: ("#cat" + this.id).attr is not a function...

尝试显示任何这些选项都不会给出任何输出(当我设置警报时甚至没有弹出窗口)

如有任何帮助,我们将不胜感激!

最佳答案

您正在加载动态值。请使用Event Delegation 。还有$.one()绑定(bind)事件一次。

您需要将其添加到您的 ready 函数中。

$(document).ready(function () {
    $("#Links ul").one("click", ".cat", function(){
        alert($(this).data('catid'))
    });
});

要获取元素的 ID,请使用 $(this).attr("id")$(this).prop("id") (最新的 jQuery) 而不是 this.id,因为有时它可能会返回 jQuery 对象。

关于javascript - 如何使用 "this"从所选项目中检索 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30549996/

相关文章:

Javascript函数回到原来的位置

javascript - 如何使用 jsdoc 对此进行记录?

javascript - 实现一个依赖的 jqGrid

javascript - jquery 打开带有动态 id 的 div

javascript - 我如何从这些数据中获取对象数组以获取状态并在 reactjs 中计数

javascript - 其他人如何在实时页面的 DOM 中搜索元素?

javascript - 未捕获的语法错误 : Unexpected token ILLEGAL and SyntaxError: unterminated string literal

javascript - 如何在 ASP.NET 文本框中只允许信用卡/借记卡号码格式

css - Html5 3列布局

html - 删除 HTML 使用 Java 删除对齐方式