通过点击事件获取数据属性
Acquiring data attribute with click event
我想使用 data-attribute
获得 div 值。在这种情况下,具体来说,data-pdf
。正如您在我的示例中看到的那样,在我单击任一选项后,该值未定义。
我做错了什么?另外,价值会根据我点击的标题而改变吗?我只想一次存储一个值。
$(".pdfWrap").on("click", function (event) {
let pdfChoice = $(this).find('.pdfWrap').data('pdf');
console.log(pdfChoice);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="pdfWrap" data-pdf="Linear Structure">
<h3 class="pdfTitle">Linear Structure</h3>
</div><div class="pdfWrap" data-pdf="Dynamic Structure">
<h3 class="pdfTitle">Dynamic Structure</h3>
</div>
您正在 pdfWrap
上注册点击处理程序,因此回调中的 this
将仅为 pdfWrap
元素。您不需要执行额外的 find
,而只需获取 data-attribute
值。
$(".pdfWrap").on("click", function(event) {
let pdfChoice = $(this).data('pdf');
console.log(pdfChoice);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="pdfWrap" data-pdf="Linear Structure">
<h3 class="pdfTitle">Linear Structure</h3>
</div>
<div class="pdfWrap" data-pdf="Dynamic Structure">
<h3 class="pdfTitle">Dynamic Structure</h3>
</div>
Here's how you can do it without jQuery in the event handler:
$(".pdfWrap").on("click", function(event) {
let pdfChoice = this.dataset.pdf;
console.log(pdfChoice);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="pdfWrap" data-pdf="Linear Structure">
<h3 class="pdfTitle">Linear Structure</h3>
</div>
<div class="pdfWrap" data-pdf="Dynamic Structure">
<h3 class="pdfTitle">Dynamic Structure</h3>
</div>
我想使用 data-attribute
获得 div 值。在这种情况下,具体来说,data-pdf
。正如您在我的示例中看到的那样,在我单击任一选项后,该值未定义。
我做错了什么?另外,价值会根据我点击的标题而改变吗?我只想一次存储一个值。
$(".pdfWrap").on("click", function (event) {
let pdfChoice = $(this).find('.pdfWrap').data('pdf');
console.log(pdfChoice);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="pdfWrap" data-pdf="Linear Structure">
<h3 class="pdfTitle">Linear Structure</h3>
</div><div class="pdfWrap" data-pdf="Dynamic Structure">
<h3 class="pdfTitle">Dynamic Structure</h3>
</div>
您正在 pdfWrap
上注册点击处理程序,因此回调中的 this
将仅为 pdfWrap
元素。您不需要执行额外的 find
,而只需获取 data-attribute
值。
$(".pdfWrap").on("click", function(event) {
let pdfChoice = $(this).data('pdf');
console.log(pdfChoice);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="pdfWrap" data-pdf="Linear Structure">
<h3 class="pdfTitle">Linear Structure</h3>
</div>
<div class="pdfWrap" data-pdf="Dynamic Structure">
<h3 class="pdfTitle">Dynamic Structure</h3>
</div>
Here's how you can do it without jQuery in the event handler:
$(".pdfWrap").on("click", function(event) {
let pdfChoice = this.dataset.pdf;
console.log(pdfChoice);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="pdfWrap" data-pdf="Linear Structure">
<h3 class="pdfTitle">Linear Structure</h3>
</div>
<div class="pdfWrap" data-pdf="Dynamic Structure">
<h3 class="pdfTitle">Dynamic Structure</h3>
</div>