gpt4 book ai didi

javascript - jQuery data() 无法写入 HTML 元素?

转载 作者:行者123 更新时间:2023-11-30 08:23:47 26 4
gpt4 key购买 nike

HTML:

<div class="modal">
<div class="search">
<input class="search-input" type="text" name="search" placeholder="Start typing to search">
</div>
</div>
<p class="add-new-item" data-catid="1">Add New Item</p>

jQuery:

$(".add-new-item").click(function() {
var catid = $(this).data("catid");
$(".modal").show();
$(".search-input").data("catid", catid);
});

catid正在正确检索,但未添加到输入元素。这是怎么回事?我该如何解决这个问题?

最佳答案

您需要使用.attr()如果您希望数据在DOM中可见。

注意:catid 不是“允许”的属性。你应该写 data-catid read more about it here

$(".add-new-item").click(function() {
var catid = $(this).data("catid");
$(".modal").show();
$(".search-input").attr("data-catid", catid); // see changes in this line
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="modal">
<div class="search">
<input class="search-input" type="text" name="search" placeholder="Start typing to search">
</div>
</div>
<p class="add-new-item" data-catid="1">Add New Item</p>

更新 .data()确实有效!但正如文档所说:值只是设置为元素并不意味着它在 DOM 中可见。

$(".add-new-item").click(function() {
var catid = $(this).data("catid");
$(".modal").show();
$(".search-input").data("catid", catid);

// now "catid" is set to .search-input
// it's just not visible in DOM
console.log('catId: ' + $(".search-input").data("catid"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="modal">
<div class="search">
<input class="search-input" type="text" name="search" placeholder="Start typing to search">
</div>
</div>
<p class="add-new-item" data-catid="1">Add New Item</p>

关于javascript - jQuery data() 无法写入 HTML 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49065601/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com