html - 如何在另一个 div 中添加数据属性的值?
问题描述
我有一个这样的div:
<div class="configurator-item">
<ul>
<li class="banner-list-img" data-price="122"></li>
</ul>
</div>
在这个 div 中,我使用 jQuery 添加了另一个 div:
这是jQuery:
jQuery('li.banner-list-img').prepend(jQuery('<div class="show-price"> </div>'));
在我运行这个 jQuery 之后,添加了一个 div:
<div class="configurator-item">
<ul>
<li class="banner-list-img" data-price="122">
<div class="show-price"> </div>
</li>
</ul>
</div>
现在我试图让 data-price 属性的值显示在 div 中(show-price
使用这个 jQuery 的类:
jQuery('.banner-list-img').each(function() {
var itemprice = jQuery(this).text();
jQuery('.show-price').html(itemprice);
})
但这不起作用。它应该显示如下内容:
<div class="configurator-item">
<ul>
<li class="banner-list-img" data-price="122">
<div class="show-price"> 122 </div>
</li>
</ul>
</div>
我怎么能这样。
解决方案
您可以使用jQuery.data()
获取数据属性并.find()
仅使用后代的 show-price 类更新元素:
jQuery('li.banner-list-img[data-price]').prepend(jQuery('<div class="show-price"> </div>'));
jQuery('.banner-list-img[data-price]').each(function() {
jQuery(this).find('.show-price').html(jQuery(this).data('price'));
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="configurator-item">
<ul>
<li class="banner-list-img" data-price="122"></li>
<li class="banner-list-img" data-price="123"></li>
<li class="banner-list-img" data-price="124"></li>
<li class="banner-list-img"></li>
</ul>
</div>
这可以通过一次性使用数据值来改进:
jQuery('.banner-list-img[data-price]').each(function() {
jQuery(this).prepend(jQuery('<div class="show-price">' + jQuery(this).data('price') + '</div>'));
})
.banner-list-img[data-price="0"] .show-price {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="configurator-item">
<ul>
<li class="banner-list-img" data-price="122"></li>
<li class="banner-list-img" data-price="123"></li>
<li class="banner-list-img" data-price="124"></li>
<li class="banner-list-img"></li>
<li class="banner-list-img" data-price="0"></li>
</ul>
</div>
推荐阅读
- ruby-on-rails - 有人可以帮我理解这一行代码吗?
- javascript - JS代码在页面中运行两次
- html - 如何限制 div 停留在另一个 2 div 的底部
- c# - 运行时不显示对 Windows 窗体的更改
- oracle - UNION ALL 用于 PL/SQL 中的 2 个游标
- python-3.x - 如何从不可迭代的 json 对象中搜索特定单词
- sql - SQL Server xml 路径中的 XML 格式
- c# - 将本地用户数据库与 Identity Server 4 连接
- docker - 如何将 docker 容器的所有输出记录到进程 1,以便在 docker 日志中查看它们?
- ios - 无法使用 MPMediaPickerController