从javascript获取所有uid时出错

时间:2012-10-12 20:44:59

标签: javascript

在facebook pokes页面中,http://www.facebook.com/pokes我试图使用javascript找到所有的uid。从firebug我得到以下标签名称......

<a rel="async-post" ajaxify="/ajax/pokes/poke_inline.php?uid=XXXXXXXXXXXX&amp;pokeback=1" href="#" class="uiIconText"><i style="top: 0px;" class="img sp_1lbo22 sx_3b5b96"></i>Poke Back</a>

enter image description here

为了得到所有的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?

1 个答案:

答案 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来获取元素。