继续预先添加几张图片

时间:2010-08-03 16:38:19

标签: jquery sharepoint each prepend

我正在使用jQuery处理SharePoint,每次我将prepend()函数与each()函数结合使用,以便在列表中的每个单元格之前显示图像时,我会得到几个这样的图像。 / p>

更具体地说,这些图像的数量与列表中的项目数量相匹配。我打赌这是发生了什么的线索,但我不是jQuery专家

这是一段代码:

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

Image,btw,image是一个包含图像html代码的变量。 Item就是这样:

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

这个地方太棒了!

2 个答案:

答案 0 :(得分:0)

你可以这样做:

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

但是我不清楚image是什么,如果它是一组元素,它会预先设置为item选择器找到的每个匹配。如果它是一个jQuery元素或一个数组,上面的内容将会起作用,如果它是其他内容,请发布它。

上面的示例采用了匹配的image条目,并将其添加到同一索引的当前item匹配项中,这是我可以从问题中收集的最佳内容。

答案 1 :(得分:0)

我怀疑问题可能出在item的选择器上。根据我的经验,SharePoint生成的HTML包含许多“空”元素,这些元素虽然在呈现的页面中不可见,但却被jQuery查询选中。

在制作jQuery选择器时,我发现Mozilla Firefox和Firebug是必不可少的。这是我的建议:

  1. 获取FirefoxFirebug(如果您还没有)
  2. 在FF中打开SharePoint页面,然后按f12激活FB
  3. 在FB中,切换到控制台选项卡(您可能需要先从控制台下拉菜单中选择“已启用”)
  4. 在控制台底部的行上(由>>>表示),输入您的jQuery: jQuery("#MSO_ContentTable td.ms-vb2>div:has(>div)")
  5. 点击返回;控制台的输出窗口应显示选择器表示的所有匹配项。将鼠标悬停在每个鼠标上,以便在页面中突出显示它。
  6. 通过使用此技术,您可以查看您的查询是否过多,过少或根本没有得到正确的结果。

    请务必在FB控制台窗口中使用jQuery而不是$,因为FB也会使用美元别名。

    祝你好运!