JavaScript使用DOM对象获取子结点的问题

今天做购物车的时候遇到了几个问题,基本操作是添加商品,删除商品,清空购物车,还有为商品添加数量(最大为99)或减少数量(最小为1),在写javascript脚本的时候用ajax连接后台,后台用Map集合保存商品的信息和商品的数量,保存在session作用域中,但是后台做完处理之后我不希望重新加载页面才看到效果,于是用javascript写,发现childNodes这个属性获取的集合包含了本身。

 

<tr>	
	<td>商品编号</td>
	<td>商品名称</td>
	<td>商品单价</td>
	<td>生产日期</td>
	<td>失效日期</td>
	<td>商品单位</td>
	<td>商品数量</td>
	<td>商品总额</td>
	<td>操作</td>
</tr>

 我用如下的代码弹出来的长度是19,这个属性是获得本结点和所有子结点的集合,包含文本结点,我把<tr>内的内容全都删了弹出的长度是1。

var trList = document.getElementsByTagName("tr");
var tdList = trList.item(0).childNodes;
alert(tdList.length);

 我想获得第一个<td>的内容“商品编号”,只好这样

var trList = document.getElementsByTagName("tr");
var tdList = trList.item(0).childNodes;
var tdElement = tdList.item(1);
alert(tdElement.innerHTML);

 而children这个属性是表示获得本结点的直接子结点,不包含本身。例如:

var trList = document.getElementsByTagName("tr");
var tdList = trList.item(0).children;
var tdElement = tdList.item(1);
alert(tdList.length);
alert(tdElement.innerHTML);

 第一个弹出来的长度是9,即<td>标签的个数,第二个弹出的是“商品名称”。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值