我有一个问题,我的代码应检查列表中的项目长度并设置颜色,如果项目长度超过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);
}
}
答案 0 :(得分:2)
与
var itemLength = 0;
while ... {
if (item.length > itemLength) {
itemLength = item.length;
您说只有当前项目比prévious项目更长时才会进入循环。因此,如果您的第一个项目具有最大长度,则永远不会为任何其他项目输入循环。
你也写了
document.getElementById("items").style.color = "red";
这意味着您只有一个id =“items”的元素,因为ID必须是唯一的。因此,多次更换一种颜色没有意义。你可能想这样做:
$(item).style.color = "red";
答案 1 :(得分:1)
您似乎缺少一些令测试烦人的代码。我认为问题在于此:
item += "<br/>" + currentItem.get_item("Title");
你确定currentItem.get_item(“Title”)。length +“
”。length并不总是&gt; 6?
您可以将其更改为仅查看currentItem.get_item("Title").length
答案 2 :(得分:1)
document.getElementById("items")
使用id“items”设置DOM节点的所有子节点的文本颜色。
我认为您希望先后只指定由item
变量设计的DOM节点的颜色。
您需要将此项目放在单独的节点中,例如a 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");
}
}
}
答案 3 :(得分:0)
我已经修好了。谢谢你的帮助!
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);