我添加了这个,但给出了错误
我想获取并设置数值,但它给出了未定义的
$('#List').find('.plan').dataset.value = 10;
谢谢!
答案 0 :(得分:2)
使用.attr
来设置data-value
属性的值,该属性将在所有.plan
上设置值
$('#List').find('.plan').attr("data-value", "10");
答案 1 :(得分:1)
您正在尝试访问jQuery COLLECTION上的DOM属性。
要在using dataset时访问元素,您需要输入[0],如
$('#List').find('.plan')[0].dataset.value = amt;
如果您不想使用.data("value",amt)
或.attr("data-value",amt)
,它们将在找到的任何.plan上设置amt。
或者您可以使用this
:
$('#List').find('.plan').each(function() {
this.dataset.value = amt;
})
测试:
var amt = 10;
// $('#List').find('.plan').dataset.value = amt; // does not work
$('#List').find('.plan')[1].dataset.value = amt; // ONLY on second element
console.log($("#List").html())
$('#List').find('.plan').attr("data-value", amt); // on ALL elements found
console.log($("#List").html())
$('#List').find('.plan').each(function() { // loop over elements
this.dataset.value = 20;
})
console.log($("#List").html())
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="List">
<li class="notPlan">Not a plan</li>
<li class="plan">Plan 0</li>
<li class="notPlan">Not a plan</li>
<li class="plan">Plan 1</li>
</ul>