如何使用.each()-jQuery分隔内容
How to separate content with .each() - jQuery
我有两个隐藏的<div>
元素,它们隐藏在我的页面底部,如下所示:
<div class="hidden-unit" style="display:none;">
<h1>ad unit one</h1>
</div>
<div class="hidden-unit" style="display:none;">
<h1>ad unit two</h1>
</div>
在我的页面上,我有另外两个div元素,比如…
<div class="visible-unit"></div>
<div class="visible-unit"></div>
我想循环浏览每个隐藏单元,将第一个.hidden-unit
的内容放入第一个.visible-unit
,然后同样放入第二个。
每个.hidden-unit
中的内容实际上是一个用于显示广告的内联脚本,它从一个数组传递到我在PHP中创建的视图中,因此很有可能会向数组中添加或删除更多内容,因此此循环需要适应这种情况。
我使用jQuery的.each()
尝试了许多解决方案,但似乎都做不好。如果有人想演示一个解决方案,我还创建了一个JSFiddle:
https://jsfiddle.net/p89sq2df/3/
我尝试了很多不同的组合,最近的尝试似乎只是用"广告单元二"文本填充.visible-unit
元素。
$('.hidden-unit').each(function() {
$('.visible-unit').html($(this).html());
});
以前有人做过这样的事吗?我很感激这是一个奇怪的问题。
您可以尝试使用索引:
$('.hidden-unit').each(function(index) {
$('.visible-unit').eq(index).html($(this).html());
});
var visibleUnits = $('.visible-unit').toArray();
var x = 0;
$('.hidden-unit').each(function() {
visibleUnits[x].html($(this).html());
x++;
});
问题是可能有更多的.hidden单元元素而不是.visible单元元素,这会导致异常。但这让你走上了正轨。
您需要使用索引元素,以便更新匹配的实例。这可以使用each
或html(function)
来完成
$('.visible-unit').html(function(index){
return $('.hidden-unit').eq(index).html();
});
由于您提到内容最初是由脚本加载的,因此您可能需要留出时间在脚本中进行任何异步加载(如果有的话)
DEMO
您可以克隆隐藏的div并将其添加到容器中,如果您真的不想要容器元素,也可以将它们插入另一个元素之前或之后,而不是试图匹配索引并维护两个div列表。
$(".hidden-unit").clone()
.removeClass("hidden-unit")
.removeAttr("style")
.addClass("available-unit")
.appendTo(".container");
在这里工作小提琴:https://jsfiddle.net/ygn34zL8/
相关文章:
- 使用jquery过滤逗号分隔的span文本
- jQuery:如何添加<br/>在不同的字符串中换行以分隔2中的句子
- 如何使用.each()-jQuery分隔内容
- jQuery查找元素,然后组成逗号分隔的列表
- jQuery:获取所选文本作为逗号分隔的选择框
- 如何使用Jquery.css方法更改逗号分隔的css值
- jQuery 手机间隙:- 列表视图中的自动分隔器是否正常工作
- jQuery逗号分隔的字符串到对象映射
- 将空格分隔的类列表转换为 Jquery 选择器的有效方法
- Jquery 移动复制自动分隔器
- 显示分隔逗号的 jQuery 数组
- 在 jquery 移动版中分别分隔可折叠文本和图标的事件
- 附加逗号分隔的值以选择选项 jQuery
- jQuery逗号分隔的选择器与事件驱动函数调用的变量
- jQuery:将逗号分隔的字符串转换为特定的JSON格式
- 使用jquery或javascript将逗号分隔的键和值字符串转换为对象
- jQuery从逗号分隔的列表中选择ID
- 逗号分隔的jQuery选择器性能
- JavaScript/jQuery根据一个公共属性选择多个项目,并将它们作为用分隔符分隔的字符串传递给JavaBean
- 指定在用逗号分隔jQuery选择器时,哪个jQuery选择器的优先级高于其他选择器