保留多个图像

问题描述:

我正在使用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

你可以只是这样做:

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

但我什么image还不清楚,如果它是一组元素,它会预先准备设置到每个匹配item选择找到。如果它是一个jQuery元素或一个数组,上面的工作,如果它是别的东西,请张贴它。

上述示例采用匹配的image条目,并将其前置到当前item匹配的相同索引,这是我可以从问题中收集的最好的问题。

+0

它没有工作。 “图像”包含HTML,就是这样。这不是一个数组,只是我想在所有“项目”之前放置的单个实体。抱歉,模糊不清。 – ShareOnpoint 2010-08-03 17:23:23

我怀疑问题可能出在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也使用美元别名。

祝你好运!