不断添加几张图片

Posted

技术标签:

【中文标题】不断添加几张图片【英文标题】:Keeps prepending several images 【发布时间】:2010-08-03 16:38:19 【问题描述】:

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

这个地方太棒了!

【问题讨论】:

这甚至没有任何意义。问题出在哪里? 【参考方案1】:

你可以这样做:

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

但我不清楚image 是什么,如果它是一组元素,它将预先设置为item 选择器找到的每个匹配项。如果是 jQuery 元素或者数组,上面的就可以了,如果是别的,请贴出来。

上面的示例采用匹配的 image 条目并将其添加到相同索引的当前 item 匹配项之前,这是我可以从被问到的问题中收集到的最好结果。

【讨论】:

它没有用。 “图像”包含 html,仅此而已。它不是一个数组,只是我想放在所有“项目”之前的一个实体。很抱歉含糊不清。【参考方案2】:

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

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

    获取Firefox 和Firebug(如果您还没有) 在 FF 中打开您的 SharePoint 页面并按 f12 激活 FB 在 FB 中,切换到控制台选项卡(您可能需要先从控制台下拉菜单中选择“启用”) 在控制台底部的行(由>>> 表示),输入您的jQuery: jQuery("#MSO_ContentTable td.ms-vb2>div:has(>div)") 点击返回;控制台的输出窗口应该显示选择器代表的所有匹配项。将鼠标悬停在每一个上,即可在页面中看到它突出显示。

通过使用这种技术,您可以查看您的查询是否拉回太多、太少或根本没有正确的结果。

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

祝你好运!

【讨论】:

以上是关于不断添加几张图片的主要内容,如果未能解决你的问题,请参考以下文章

怎么把几张图片合成为一张GIF格式的图片?

Android怎么在listview中的item动态添加控件。比如我不清楚究竟有几张图片需要解析数据后才知道

想做一个全能的所见即所得套打程序,放几张图片看

jquery 点击一次加载几张图片,再点击再加载几张图片,一直到所有图片都显示,怎么实现

Swiper滚动图片显示当前图片是第几张图片

swiper最少显示几张图片