2010-08-03 83 views
1

我正在使用jQuery SharePoint,每次將prepend()函數與each()函數結合使用以便在列表中的每個單元格之前顯示圖像時,我會獲得幾個那些圖像。保留多個圖像

更具體地說,這些圖像的數量與列表中的項目數量相匹配。我敢打賭,這是一個線索,這是怎麼回事,但我沒有jQuery的專家

下面是一段代碼:

$(item).each(function(i, e) { 
    $(e).prepend(image); 
}); 

圖片,順便說一句,image是包含HTML代碼的圖像的變量。 Item是這樣的:

var item = #MSO_ContentTable td.ms-vb2>div:has(>div); 

這個地方太棒了!

+0

什麼是「圖像」? – 2010-08-03 16:41:48

+0

這甚至沒有任何意義。問題在哪裏? – 2010-08-03 16:42:35

回答

0

你可以只是這樣做:

$(item).each(function(i, e) { 
    $(e).prepend(image[i]); 
}); 

但我什麼image還不清楚,如果它是一組元素,它會預先準備設置到每個匹配item選擇找到。如果它是一個jQuery元素或一個數組,上面的工作,如果它是別的東西,請張貼它。

上述示例採用匹配的image條目,並將其前置到當前item匹配的相同索引,這是我可以從問題中收集的最好的問題。

+0

它沒有工作。 「圖像」包含HTML,就是這樣。這不是一個數組,只是我想在所有「項目」之前放置的單個實體。抱歉,模糊不清。 – ShareOnpoint 2010-08-03 17:23:23

0

我懷疑問題可能出在item的選擇器上。我的經驗是,由SharePoint生成的HTML包含很多「空」元素,雖然在呈現的頁面中不可見,卻被jQuery查詢拾取。

我發現Mozilla Firefox和Firebug在製作jQuery選擇器時是不可或缺的。這裏是我的建議:

  1. 獲取FirefoxFirebug(如果你還沒有的話)
  2. 打開在FF您的SharePoint頁面並點擊F12激活FB
  3. 在FB中,切換到控制檯選項卡(您可能需要從控制檯下拉菜單第一)
  4. 在在控制檯(通過>>>表示),輸入你的jQuery底部的一行中選擇「已啓用」: jQuery("#MSO_ContentTable td.ms-vb2>div:has(>div)")
  5. 敲回車;控制檯的輸出窗口應該顯示選擇器代表的所有匹配。將鼠標懸停在每一個上面,看它在頁面中突出顯示。

通過使用此技術,您可以查看您的查詢是否拉回太多,太少或根本沒有正確的結果。

請確保在FB控制檯窗口中使用jQuery而不是$,因爲FB也使用美元別名。

祝你好運!