查找父元素数据值并显示它
Find parent element data value and display it
我制作了一个简单的水平图形图表,并使用jQuery和html中的data-value来设置每个栏的宽度,这部分工作得很好。我卡住了试图显示每个图形条内的数据值。下面的jQuery代码显示了最后一个图形条的数据值,它在每个图形条中占22%。我怎样才能正确地显示每个图形条的数据值?
HTML代码
<div class="graph-bar-bg">
<span class="graph-bar" data-value="78"><i></i></span>
</div>
jQuery代码 $(document).ready(function() {
$('.graph-bar').each(function() {
var barWidth = $(this).data('value');
$(this).css("width", barWidth + "%");
$('.graph-bar i').each(function() {
$(this).text(barWidth);
});
});
});
谢谢你的帮助。
$(document).ready(function() {
$('.graph-bar').each(function() {
var barWidth = $(this).data('value');
$(this).css("width", barWidth + "%");
$(this).find('i').text(barwidth);
});
});
从你的代码我得到的是只有一个I标记在每个图形条,所以循环通过I标记不是你需要的。在设置完css后,在一行内正常执行即可。
试试这个
$(document).ready(function() {
$('.graph-bar').each(function() {
var barWidth = $(this).data('value');
$(this).css("width", barWidth + "%");
$(this).children().text(barWidth);
});
});
下面是在fiddle https://jsfiddle.net/ohwdhdmr/3/
您想要的运行结果如下:result
代码:
$(document).ready(function() {
$('.graph-bar').each(function() {
var barWidth = $(this).data('value');
if(parseInt(barWidth,10) < 40) {
$(this).addClass('lt');
} else if(parseInt(barWidth,10) < 60) {
$(this).addClass('md');
} else {
$(this).addClass('gt');
}
$(this).css("width", barWidth + "%");
$(this).find('i').text(barWidth);
});
});
.graph-bar-bg{
background-color: #bdd;
padding: 4px 10px;
position: relative;
}
.graph-bar{
display: block;
width: 6px;
background-color: red;
margin-bottom: 6px;
}
.lt{
background-color: #1EAB15;
}
.md{
background-color: #A9AB15;
}
.gt{
background-color: #D81C1C;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="graph-bar-bg">
<span class="graph-bar" data-value="78"><i></i></span>
<span class="graph-bar" data-value="20"><i></i></span>
<span class="graph-bar" data-value="50"><i></i></span>
<span class="graph-bar" data-value="10"><i></i></span>
<span class="graph-bar" data-value="60"><i></i></span>
</div>
相关文章:
- 如何通过所选索引(AngularJS)在模态弹出窗口中显示数据
- Angular渲染元素,但不渲染;t显示数据
- 如何在分页事件中突出显示数据表中的单词
- Angular JS和Node路由/布线-仅在页面刷新后显示数据
- MVC中关于表的自定义工具提示-每行显示数据
- Highcharts:根据表单输入动态显示数据
- 重置transform:rotate(),方法是移除并追加在追加和重绘图表后未显示数据的画布
- jqGrid无法显示数据
- 显示数据的最快方式
- 如何从jquery日期和时间选择器中选择和显示数据
- 我的复选框没有't使用的循环来显示数据
- 如何在状态输入ui路由器时立即显示模板,然后当承诺被解决时显示数据
- 车把模板不显示数据
- 如何完成表单后使用 AJAX 重定向并在其他页面上显示数据
- Html5 Web 存储未在第二页中显示数据
- ASP.Net VB - 显示数据折叠样式
- 正确禁止显示数据表中的警告
- 在使用 JS 进行选择时在文本框中显示数据
- 如何使用 C# 和 Angular js 在视图上显示数据
- 在轨道上的 Ruby 文本字段中动态显示数据