JavaScript在ListView中亲自重新选择类
JavaScript reselect class personally in ListView
我正在使用我的模板创建ListView
HTML:
<div id="ItemTemplate" data-win-control="WinJS.Binding.Template">
<div class="ItemTemplate">
<div class="back"></div>
<div data-win-bind="innerText:Info.shortName" class="shortName"></div>
<div data-win-bind="innerText:value Converters.BeginValue" class="value"></div>
<div data-win-bind="innerText:value Converters.EndValue" class="valueEnd"></div>
<div data-win-bind="innerText:Info.longName"></div>
<img data-win-bind="src:Info.flag" class="flag" />
<div data-win-bind="innerText:change Converters.BeginChange" class="change"></div>
<div data-win-bind="innerText:change Converters.EndValue" class="changeEnd"></div>
<div data-win-bind="innerText:changePercent Converters.BeginChangePercent" class="changePercent"></div>
<div data-win-bind="innerText:changePercent Converters.EndValue" class="changePercentEnd"></div>
</div>
</div>
问题是当我遇到很长的名字时,我需要调整字体大小。
所以我做了(对于列表中的每个元素(:
JavaScript:
template = document.getElementById('ItemTemplate');
// Adjust font - size
var name = item.data.Info.longName;
// Split by words
var parts = name.split(' ');
// Count words
var count = parts.filter(function(value) {
return value !== undefined;
}).length;
var longNameDiv = $(template).children("div").children("div").eq(4);
if (count > 2) {
// Display very long names correctly
$(longNameDiv).removeClass();
$(longNameDiv).addClass("veryLongName");
}
var rootDiv = document.createElement('div');
template.winControl.render(item.data, rootDiv);
return rootDiv;
CSS:
.veryLongName {
font-size: 10pt;
}
但它并没有选择性地起作用。此外,这似乎是第一次检查条件,然后对其余项目应用相同的设置。但只有在名称太长的情况下,它才需要将字体大小更改为更小。那么我做错了什么?谢谢
Try by using following code instead, but u must include jquery for it.
jsfiddle:http://jsfiddle.net/vH6G8/
您可以使用jquery的过滤器来完成此操作
$(".ItemTemplate > div").filter(function(){
return ($(this).text().length > 5);
}).addClass('more_than5');
$(".ItemTemplate > div").filter(function(){
return ($(this).text().length > 10);
}).removeClass('more_than5').addClass('more_than10');
DEMO
相关文章:
- 如何使新选择的html选项成为页面加载的第一选择
- 未选择新添加的dom元素
- 将 jQuery 对象与新选择器相结合
- 在 d3.js 中,如何在不进行新选择的情况下检查元素是否已被删除
- 当用户在 JavaScript 中选择新时间时,继续单击时钟
- 对多个选项进行筛选数组以在新选择中返回选项
- “选择新值”上的“重新加载”页面
- 选择2:选择新标记后更新选项
- 如果选择了current,jqGrid将阻止选择新行&&alert onclick on复选框
- 使用数据库中的选项添加新选择
- 不能用jquery选择新创建的对象
- 如何防止栅格自动选择新添加的项目,保留当前选择
- Jquery:选择新添加的DOM节点的最佳方法是什么?
- 如何在选择新选项时删除以前选择的选项
- 当从下拉过滤器中选择新源时,JavaScript D3条形图数据将不会更新
- 选择新表时删除以前的表
- 新选择新图表时不会绘制
- 如何选择新加载 html 的元素
- 使用react-router选择新项时刷新组件
- jQuery选项卡-获取新选择的索引