在facebook pokes页面中,http://www.facebook.com/pokes我试图使用javascript找到所有的uid。从firebug我得到以下标签名称......
<a rel="async-post" ajaxify="/ajax/pokes/poke_inline.php?uid=XXXXXXXXXXXX&pokeback=1" href="#" class="uiIconText"><i style="top: 0px;" class="img sp_1lbo22 sx_3b5b96"></i>Poke Back</a>
为了得到所有的uid,我按照以下方式设计了我的javascript -
var allAnchorElements = document.getElementsByTagName('a');
for (var i = 0; i < allAnchorElements.length; i++) {
var uid = allAnchorElements[i].ajaxify.match(/uid=([0-9]*)/)[1];
我没有把完整的代码放在这里。现在,当从firebug控制台执行此代码时,我收到TypeError: allAnchorElements[i].ajaxify is undefined
错误。
为什么我收到此错误?如何更改我的脚本以获取所有uid?
答案 0 :(得分:4)
好的document.getElementsByTagName('a');正在获取页面上的所有链接。所有链接都具有该属性吗?如果答案是否定的,请将其过滤掉。
一种方式:
var allAnchorElements = document.getElementsByTagName('a');
for (var i = 0; i < allAnchorElements.length; i++) {
var ajaxify = allAnchorElements[i].ajaxify;
if (!ajaxify) {
continue;
}
var uid = ajaxify.match(/uid=([0-9]*)/)[1];
}
另一种方法是使用querySelector来获取元素。