2

我是新来的,我被困在我的项目中......

我需要从电子商务的购物车中排除物品...

此购物车显示在 Fancybox 的 iframe 中。

它可以工作,但在 Chrome 中视觉上却没有。在 Firefox 和 IE 中它工作正常...

我在 div 中的项目命名为 div_1、div_2、div_3...

<div id="div_1">
   content...
</div>
<div id="div_2>
   content...
</div>
<div id="div_3>
   content...
</div>

为了滚动页面,我将所有内容放在带有样式的主 div 中。

style="overflow: hidden; width:820px; height:auto;"

因为滚动是由 iframe(auto) 和我的主 div 控制的,所以定义了 widht 的值,并且高度是自动的以适应我的内容......

在 div 中,我有一个来自产品、名称、价格的 img 和一个带有这个 JS 的删除按钮:-

onClick="removeItem(<%=arrayIndexdiv%>)"

和功能: -

<script>
    function removeItem( itemid ) {
        document.getElementById('div_' + itemid ).innerHTML = "";
    }
</script>

换句话说,该功能只是擦除 div,将它们从页面中排除...

当我的列表 itens 大于 iframe 大小时,会出现垂直滚动条。

当我单击删除时,在所有棕色程序中,iten 都会正确地消失,但在 Chrome 中,iframe 的大小不会改变,并且在页脚之前,我的所有项目上方都有一个空白区域。

在 IE 和 Mozilla 中没关系,空间没有出现,但在 Chrome 中它在那里......

我不知道我是否可以将 URL 放在这里以提供更多帮助?如果可以,请告诉我!

谁能帮我?

对不起我的英语!

谢谢你们!

4

2 回答 2

2

我相信你想DOM从不只是覆盖的内容中删除元素div

innerHTML属性设置或获取描述元素后代的 HTML 语法。在您的情况下,您只是在设置div内容:

document.getElementById('div_' + itemid ).innerHTML = "";

如果要从中删除元素DOM

function removeItem( itemid ) {
  var element = document.getElementById('div_' + itemid ); // will return element
  element.parentNode.removeChild(element); // will remove the element from DOM
}

style="overflow: hidden; width:820px; height:auto;"将隐藏溢出div但不会滚动它。

如果你想让它滚动你可以设置overflow:scroll.

于 2013-09-19T03:04:48.890 回答
1

我相信您的问题是,由于 div 标签是块元素,它们仍然占用父 div 中的空间。像这样:

var element = document.getElementById("div_" + itemid); 
element.parentNode.removeChild(element);

此外,此操作在 jquery 中更简洁一些。您可能希望查看它以进行进一步的 DOM 操作。

于 2013-09-19T02:35:03.050 回答