在JavaScript中通过innerHTML从列表中删除项目
我是新来的,我被困在我的项目中 我需要排除从一个电子商务购物车项目 此购物车显示在Fancybox的iframe中 它可以工作,但在Chrome中视觉上却不行。在Firefox和IE中,它的工作很好 我在div中有我的项目,比如div_1、div_2、div_3在JavaScript中通过innerHTML从列表中删除项目,javascript,html,iframe,asp-classic,Javascript,Html,Iframe,Asp Classic,我是新来的,我被困在我的项目中 我需要排除从一个电子商务购物车项目 此购物车显示在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&g
<div id="div_1">
content...
</div>
<div id="div_2>
content...
</div>
<div id="div_3>
content...
</div>
因为滚动由iframe(auto)和我的主div控制,所以定义了widt的值,并且高度是自动的,以适合我的内容
在div中,我有一个来自product、name、price的img和一个带有以下JS的删除按钮:-
onClick="removeItem(<%=arrayIndexdiv%>)"
onClick=“removietem()”
以及功能:-
<script>
function removeItem( itemid ) {
document.getElementById('div_' + itemid ).innerHTML = "";
}
</script>
函数removeItem(itemid){
document.getElementById('div_'+itemid).innerHTML=“”;
}
换句话说,该函数只是删除div,将其从页面中排除
当我的列表itens大于iframe大小时,将显示垂直滚动条
当我单击remove时,所有浏览器中的iten都正确无误,但在Chrome中,iframe的大小不会改变,我在所有项目上方的页脚前都有一个空格
在IE和Mozilla中没关系,空间没有出现,但在Chrome中它就在那里
我不知道我是否可以把URL放在这里来帮助更多人?如果可以,请告诉我
有人能帮我吗
对不起,我的英语
谢谢你们 我认为您的问题在于,由于div标记是块元素,它们仍然占用父div中的空间。例如:
var element = document.getElementById("div_" + itemid);
element.parentNode.removeChild(element);
此外,这个操作在jquery中更简洁。您可能希望查看它以获得进一步的DOM操作。我相信您希望从
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=“溢出:隐藏;宽度:820px;高度:自动;”
将隐藏溢出的div,但不会滚动它
如果你想让它滚动,你可以设置溢出:滚动你真的有
而不是
?请解决您的问题以显示真正的HTML。如果希望此div可滚动,您也不应该使用overflow:hidden
。改用溢出:滚动。好的,我编辑了。。。现在正确了,对不起!顺便说一下,我把溢出:滚动,但不改变任何浏览器!将innerHTML设置为“”不会删除该元素,只会删除其内容。我相信这是Chrome中的一个错误,因为如果我只需单击iframe的任何区域(在remove中不需要),滚动条的大小将调整为更大。。。很奇怪!这有趣吗?正如我对上面的朋友所说,我忘了提到div的id,但是它们存在,只是在这里我忘了。我如何在实践中使用您的示例?它同样有效,似乎更清晰,但问题仍然存在。。。我相信这是Chrome中的一个bug,因为如果我只需单击iframe的任何区域(在REMOVE中不需要),滚动条的大小就会变大。。。很奇怪!我做到了,并且在视觉上工作,就像我使用的另一种方式。。。但在chrome中,问题仍然存在。。因为如果我只需单击iframe的任何区域(删除时不需要),滚动条的大小将调整为更大。。。很奇怪!尝试我的页面:有时在产品中点击ADCIONAR AO CARRINHO,然后在中点击FINALIZAR@user2793679嘿,很抱歉,我没能解决你的问题。它在chrome中也能正常工作。试着设置溢出:auto
。但是使用hidden确实没有意义,因为滚动条在iframe旁边。。。主div获取100%的高度,iframe控件取消滚动条。。。如果我设置自动,iframe上会显示3个滚动条。我可以在iframe上禁用滚动,但我可以垂直滚动我的div???所以你只想滚动你的div
垂直滚动?
function removeItem( itemid ) {
var element = document.getElementById('div_' + itemid ); // will return element
element.parentNode.removeChild(element); // will remove the element from DOM
}