关于ducument.getelementbysname对元素取值问题

本文解析了在JavaScript中使用document.getElementsByName('name').value获取元素值的常见错误,并提供了正确的实现方式,强调了getElementById与getElementsByName的区别。

转自https://blog.youkuaiyun.com/s891104/article/details/50034919
document.getElementsByName(“name”).value;
像这样是获取不到值的,弹出的消息是 underfined:
原因
getElementById是element单数,
getElementsByName是elements复数。
正确方法:
var x=document.getElementsByName(“name”)[0].value;
或者:var x=document.getElementsById(“id”).value;

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style> body{ margin: 2% 5%; } .book-card{ transition: all 0.3s ease; } .book-card:hover{ transform:scale(1.05); box-shadow:0 4px 12px rgba(0,0,0,0.1); } </style> </head> <body> <div> <h1>在线书店购物车</h1> <div id="book-list"></div> </div> <div> <h2>购物车</h2> <div id="cart-div"></div> </div> <script> var books = [{ id:1, title:"Javascript", price:99.99, cover:'https://picsum.photo/200/300?random=1' }, {id:2, title:"Python", price:79.99, cover:'https://picsum.photo/200/300?random=2' }, {id:3, title:"Html与Css", price:89.99, cover:'https://picsum.photo/200/300?random=3' } ]; var cartAdd=[] function enterDom(){ for (var i = 0;i < books.length;i++){ var book = books[i]; var bookCard = document.createElement('div'); bookCard.className = "book-card"; var htmlbiaoqianpingjie = '<img src = "'+book.cover +'" alt "'book.title + '">' + '<div>' + '<h3>' + book.title + '</h3>' + '<p>' + book.price.toFixed(2) + '</p>' + '<button class="add-to-cart-button" data-id="'+book.id +'">加入购物车</button> ' '</div>' bookCard.innerHTML = htmlbiaoqianpingjie; var bookList = document.getElementById('book-list'); boolList.appendChild(bookCard) } } function renderCart(){ console.log(cartAdd) } function addTom(bookId){ for(var i=0;i<books.length;i++){ if(bookId == books[i].id){ cartAdd.push(books[i]) } } renderCart() } ducument.addEventListener('click',function(e){ var target = e.target if(target.classList.contains("add-to-cart-button")){ var bookId =parseInt(target.getAttribute("data-id"),10) addTom(bookId) } }) enterDom(); </script> </body> </html> 为什么不能运行
最新发布
05-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值