this.id is not working to detect which link is clicked in href
我是javascript新手,正在使用google API创建书店。 我有一个小问题,无法解决。 在我从google api bookstore函数的示例代码中看到的以下代码中,我试图为该书的标题创建href并将其selfLink传递给目标页面,即book-description.html。
当我在onclick上放置alert(this.id)时,它可以工作,但是对于普通方法get(this),则不起作用。 我不需要警报框,我想获取在href中单击的链接的ID并将其传递给另一个html。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | handleResponse(response) { for (var i = 0; i < response.items.length; i++) { var item = response.items[i]; var a = item.volumeInfo.title; var selfL = item.selfLink; //var b = a.link("book-description.html"); var image = item.volumeInfo.imageLinks.smallThumbnail; document.getElementById("content").innerHTML +="</br>" +"</br>" +"" +"<img src =" +"'" + image +"'" +" class='im'/>"; document.getElementById("content").innerHTML +="<h4 class='right'>" +"<a href = 'book-description.html'id =" +"'" + selfL +"'" + "onclick ='get(this);'>" + a +"</h4>"; function get(e) { var link = e.id; localStorage.setItem("Link", link); } document.getElementById("content").innerHTML +="<h4 class='right'>" +"AUTHOR:" + item.volumeInfo.authors +"</h4>"; document.getElementById("content").innerHTML +="<h5 class='right'>" +"PUBLISHER:" + item.volumeInfo.publisher +"</h5>"; var rating = item.volumeInfo.averageRating; if (rating) { document.getElementById("content").innerHTML +="<h5 class='right' id='rating'>" + rating +"</h5>"; } else { document.getElementById("content").innerHTML +="<h5 class = 'right' id ='rating'>Not Rated Yet</h5>"; } //document.getElementById("content").innerHTML +="" +"" +"" + item.volumeInfo.publisheddate; } } |
您的代码有很多问题,但特别是在回答问题时; 您的函数
只需移动此
1 2 3 4 | function get(e) { var link = e.id; localStorage.setItem("Link", link); } |
进入页面顶部
在编程中有DRY的概念(请不要重复自己)。 因此,存储对
1 2 | var content = document.getElementById("content"); content.innerHTML = ... |
您在输出html中缺少一些空格。 这可能在某些浏览器中有效,而其他浏览器会很费劲
1 | <a href = 'book-description.html'id= |
一个属性的结尾与另一个属性的开头之间应该有一个空格
1 | <a href='book-description.html' id= |
为了天上的缘故,理清字符串的串联。 如果只是一个简单的字符串,则不需要
1 | document.getElementById("content").innerHTML +="</br>" +"</br>"; |
应该
1 | document.getElementById("content").innerHTML +="</br></br>"; |