在列表中循环并根据项目的长度设置项目的颜色不起作用
Looping in a list and setting colors on items according the length of the items is not working
我有一个问题,我的代码应该检查列表中项目的长度并设置颜色,如果项目长于6,该项目的颜色应该为红色否则为蓝色,但它返回所有项目红色。
function onS() {
var item = "";
var itemLength = 0;
var Enum = listItems.getEnumerator();
while (Enum.moveNext()) {
var currentItem = Enum.get_current();
item += "<br/>" + currentItem.get_item("Title");
if (item.length > itemLength) {
itemLength = item.length;
if (itemLength > 6) {
document.getElementById("items").style.color = "red";
}
else
{
document.getElementById("items").style.color = "blue";
}
}
$("#items").html(item);
}
}
with
var itemLength = 0;
while ... {
if (item.length > itemLength) {
itemLength = item.length;
您说只有当当前条目比前一个条目长时才会进入循环。因此,如果您的第一个项目是最大长度,您将永远不会进入任何其他项目的循环。
你也写了
document.getElementById("items").style.color = "red";
这意味着只有一个id="items"的元素,因为id必须是唯一的。所以换一种颜色这么多次是没有意义的。你可能想这样做:
$(item).style.color = "red";
您似乎遗漏了一些代码,这使得测试很烦人。我认为问题是关于这个的:
item += "<br/>" + currentItem.get_item("Title");
你确定currentItem.get_item("Title")。长度+ "
"。长度不总是大于6?
你可以把它改成只看currentItem.get_item("Title").length
document.getElementById("items")
设置id为"items"的DOM节点的所有子节点的文本颜色。
我想你想要依次只指定由item
变量设计的DOM节点的颜色。
您需要将此项目放在单独的节点中,例如span
,然后设置该节点的样式颜色。这显然会影响您测量的长度。但我觉得你实际上想要看的是项目标题的长度,而不是像你在这里做的那样,items
的整个html代码的长度。
var items = $("#items");
var itemLength = 0;
while (Enum.moveNext()) {
var currentItem = Enum.get_current();
var title = currentItem.get_item("Title");
var currentItemNode = $("<span>" + title + "</span>");
items.append("<br/>");
items.append(currentItemNode);
if (title.length > itemLength) {
itemLength = item.length;
if (itemLength > 6) {
currentItemNode.css("color", "red");
} else {
currentItemNode.css("color", "blue");
}
}
}
我已经修好了。谢谢你的帮助!
function onS() {
var item = "";
var item1 = "";
var Enum = listItems.getEnumerator();
while (Enum.moveNext()) {
var currentItem = Enum.get_current();
if(currentItem.get_item("Title").length>6){
document.getElementById("items").style.color = "red";
item += "<br/>" + currentItem.get_item("Title");
}
else {
document.getElementById("items1").style.color = "blue";
item1 += "<br/>" + currentItem.get_item("Title");
}
}
$("#items").html(item);
$("#items1").html(item1);
相关文章:
- 在BootStrap菜单栏中为所选项目设置背景,类似于BootStrap中的父导航选项
- 如何在NativeScript中从列表中删除项目时设置动画
- 谷歌图表堆叠柱状图.如何设置每个单独堆叠项目(数据系列)的样式
- 设置单击项目符号导航后不起作用的间隔
- 在 JavaScript 对象中添加子对象时获取“无法设置未定义的属性'项目'”
- 获取项目的顺序 jQuery 可排序并设置它们的顺序
- 如何在Javascript中设置随机生成的项目列表的样式
- 是否可以设置柔盒插入、移除和项目位置的动画
- 用Javascript将焦点设置在select元素上会将第一个项目滚动到视图之外
- 在owlCarousel中设置活动项目
- Angular 2 和 NodeJS 项目设置
- 使用 javascript 为每个项目设置属性
- AngularJS指令在ng-repeat中为每个项目设置不同的值,只重复一次
- angularjs i18n项目设置
- 为Javascript项目设置实习生
- Onsen-ui:将旋转木马项目设置为0(带旋转木马列表的滑动菜单菜单)
- Aurelia项目设置有开箱错误,修复方法是什么?
- Sencha Touch -为一组项目设置属性
- 在jQuery中为特定ID或整个项目设置“无默认排序”(“aaSorting”:[])
- 为javascript项目设置jshint和travis-ci