我的功能基于具有当前结构和WS的数据格式。我的代码是通过js / jquery获取数据并在新结构中重新排列。它在除IE之外的所有浏览器和移动设备中都能正常工作。它不适用于任何IE版本。 WS数据进入“包装器”,我再次将其设置为两个div,即“lDiv”和“rDiv”。代码在这里需要更多说明:
var firArr = new Array();
function firstFn(){
firArr = $("#container").find(".wrapper");
var len = firArr.length;
$("#container").html("");
$("#container").append('<div class="lDiv"></div><div class="rDiv"></div>');
for(var x=0; x < len ; x++){
var html="";
if(x % 2 != 0){
html = firArr[x];
$(".rDiv").append(html);
}
else{
html = firArr[x];
$(".lDiv").append(html);
}
}
}
firstFn();
答案 0 :(得分:2)
IE从DOM中删除后,似乎没有对您的元素的引用。使用临时容器来解决这个问题:
function firstFn(){
var temp = $('<div class="lDiv"></div><div class="rDiv"></div>');
$("#container .wrapper").each(function(i,o){
temp.eq(i % 2).append(o);
});
$("#container").html(temp);
}
firstFn();
&#13;
.lDiv, .rDiv{ float: left; width: 30%; padding: 1em; margin: 5%; background: #edeced }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div id="container">
<div class="wrapper">1</div>
<div class="wrapper">2</div>
<div class="wrapper">3</div>
<div class="wrapper">4</div>
</div>
&#13;
在上面的代码中,temp
是一个引用2个div(.lDiv
和.rDiv
)的jQuery对象。第一个可以通过temp.eq(0)
访问,第二个可以通过temp.eq(1)
访问。
在$.each
函数中,i
是当前元素的索引,o
是对它的引用。
执行.eq(i % 2)
会导致选择左右div,以便您可以添加内容。