2015-10-06 22 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);