无法从通过车把生成的按钮中拉出 .attr()
Can't pull .attr() from button generated via handlebars
我正在为涉及 Express、Mongoose、Cheerio/axios 和 Handlebars 的家庭作业构建网络抓取工具。我的“/”路线抓取 Mongoose 对象,把手将它们加载到单独卡片中的页面。在这些卡片中生成一个带有属性 data-id={{_id}}'
的保存按钮。我正在尝试使用 jQuery 访问该属性,当它被按下以将其保存到另一个集合时,但 $(this) 返回未定义。
js
$(document).ready(function () {
$("#artDiv").on("click", ".save", (event) => {
event.preventDefault();
let id = $(this).attr("data-id");
console.log($(this).data("id"));
console.log(id);
})
});
html
<div id="artDiv" class="container">
{{#obj}}
{{#each .}}
{{#if headline}}
<div id="articleCard" class="card">
<h5 class="card-header">{{altHead}}</h5>
<div class="card-body">
<h5 class="card-title">{{headline}}</h5>
<p class="card-text">{{desc}}</p>
<a href="{{link}}" target="_blank" class="btn btn-primary">Visit</a>
<button data-id="{{_id}}" data-control="saveBtn" type="button" class="btn btn-success save">Save</button>
</div>
</div>
{{/if}}
{{/each}}
{{/obj}}
</div>
如果您想在 $(this)
中显示您点击的元素,则不能使用箭头功能。你必须使用 $("#artDiv").on("click", ".save", function (event) { ... });
.
我正在为涉及 Express、Mongoose、Cheerio/axios 和 Handlebars 的家庭作业构建网络抓取工具。我的“/”路线抓取 Mongoose 对象,把手将它们加载到单独卡片中的页面。在这些卡片中生成一个带有属性 data-id={{_id}}'
的保存按钮。我正在尝试使用 jQuery 访问该属性,当它被按下以将其保存到另一个集合时,但 $(this) 返回未定义。
js
$(document).ready(function () {
$("#artDiv").on("click", ".save", (event) => {
event.preventDefault();
let id = $(this).attr("data-id");
console.log($(this).data("id"));
console.log(id);
})
});
html
<div id="artDiv" class="container">
{{#obj}}
{{#each .}}
{{#if headline}}
<div id="articleCard" class="card">
<h5 class="card-header">{{altHead}}</h5>
<div class="card-body">
<h5 class="card-title">{{headline}}</h5>
<p class="card-text">{{desc}}</p>
<a href="{{link}}" target="_blank" class="btn btn-primary">Visit</a>
<button data-id="{{_id}}" data-control="saveBtn" type="button" class="btn btn-success save">Save</button>
</div>
</div>
{{/if}}
{{/each}}
{{/obj}}
</div>
如果您想在 $(this)
中显示您点击的元素,则不能使用箭头功能。你必须使用 $("#artDiv").on("click", ".save", function (event) { ... });
.