不断添加几张图片
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 也使用美元别名。
祝你好运!
【讨论】:
以上是关于不断添加几张图片的主要内容,如果未能解决你的问题,请参考以下文章
Android怎么在listview中的item动态添加控件。比如我不清楚究竟有几张图片需要解析数据后才知道