2015-10-06 65 views
-1

我遇到问题了,我的代码应该检查列表中项目的长度并设置颜色,如果项目长度超过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

这是在共享点吗? https://msdn.microsoft.com/en-us/library/office/ee659727(v=office.14).aspx –

+0

是的。我正在循环SP列表 – abc

+0

@abc“标题”是否有ID或类名? –

回答

1

你似乎错过了一些代码,这使得这个恼人的测试。我认为这个问题是关于这虽然:

item += "<br/>" + currentItem.get_item("Title"); 

你肯定currentItem.get_item(“标题”)长度+“
”。长度并不总是> 6。?

你可以改变它只能看currentItem.get_item("Title").length

2

var itemLength = 0; 
while ... { 
    if (item.length > itemLength) { 
     itemLength = item.length; 

你说,只有当目前的产品比以前的时间越长你将进入循环。所以如果你的第一个项目有最大长度,你将永远不会进入任何其他项目的循环。

而且你写

document.getElementById("items").style.color = "red"; 

这意味着,你只有一个id为“项目”的元素,因为IDS必须是唯一身份。所以多次改变一种颜色是没有意义的。你可能想要做的:

$(item).style.color = "red"; 
1

document.getElementById("items")设置id为“项目”的DOM节点的所有孩子的文本颜色。

我想你要连续指定由item变量设计的DOM节点的颜色。

您需要将此项目放在单独的节点中,例如一个span,然后设置该节点的风格颜色。这显然影响你测量的长度。但我觉得你实际上想要看的是你的项目标题的长度,而不是像你在这里所做的整个HTML代码items的长度。

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"); 
    } 
    } 
} 
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);