Why alert AnchorElement (<a>) alerts the href attribute?

痴心易碎 提交于 2019-12-20 03:21:37

问题


<a href="url">A link</a>

$.each($('a'), function(index,value){
    alert (value)
});

It will alert : url. Why this happens?


回答1:


It's because the toString() of the anchor gives the URL.

Live DEMO

alert calls toString() implicity on objects. so when you alert an array like:

[1,2,3,4,5,6]

Alerting it will give you:

"1,2,3,4,5,6"

Because the toString() of array is the elements separated by a comma.

If you encounter this problem while debugging, you should use console.log() instead of alert()




回答2:


value is HTMLAnchorElement object, HTMLAnchorElement.toString() method return its url attribute.

alert will use .toString() when display an object.




回答3:


the reason you get url is because .each takes a container(array||object) and then uses your callback function to process the container. it will take an array's elements, or an object's properties, and iterate over them. since the property of your selector object is "href", you will get the url value.



来源:https://stackoverflow.com/questions/11076627/why-alert-anchorelement-a-alerts-the-href-attribute

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!