簡體   English   中英

如何獲取數字元素的文本並將其放入數組與jQuery?

[英]How to get text of number elements and put into array with jquery?

我嘗試獲取數字元素的文本並使用jquery放入數組中,但遇到以下錯誤:

未捕獲的TypeError:aTags [i] .parent不是一個函數。

如何解決呢?

    $('#flight-stops-filter ul li a').click(function() {
    var aTags=$('#flight-stops-filter ul li a');
    stops = [];
    for (var i = 0; i < aTags.length; i++) {
        if (aTags[i].parent("li").hasClass('active')) {
            alert(this.text);
            stops.push(this.text.substr(0, 1));
        }
    }

});

使用括號表示法時

 aTags[i].parent("li") 

它返回一個DOM節點

您想使用eq(index)

aTags.eq(i).parent("li")

現在在循環內部使用this.text可能也是錯誤的,因為DOM中沒有text屬性。

所以你可能想要的是

$('#flight-stops-filter ul li a').click(function() {
    var aTags=$('#flight-stops-filter ul li a');
    stops = [];
    for (var i = 0; i < aTags.length; i++) {
        var li = aTags.eq(i).parent("li");
        if (li.hasClass('active')) {
            console.log(li.text());
            stops.push(li.text().substr(0, 1));
        }
    }
});

aTagsaTags對象,其中包含純DOM對象。 因此,如果不將它們包裝在jquery中,就無法在純DOM對象上調用jquery方法。

將您的for循環替換為

   aTags.each(function(){
     if( $(this).parent("li").hasClass('active'))
     {
         alert(this.text);
         stops.push(this.text.substr(0, 1));
     }
   });

jquery學習文檔中的此處建議,而不是通過方括號表示法訪問,您需要通過eq方法訪問它。

aTags.eq( 0 );//for first DOM object wrapped inside a jquery object

用於訪問DOM對象

aTags.get(0) ;//same as aTags[0]; 

將變量包裝在jQuery對象中(將aTags[i].parent$(aTags[i]).parent ):

if ($(aTags[i]).parent("li").hasClass('active')) {
   alert(this.text);
   stops.push(this.text.substr(0, 1));
}

要么:

$('#flight-stops-filter ul li a').click(function() {
   var lis=$('#flight-stops-filter ul li.active');
   if (lis.length > 0 ) {
      alert(this.text);
   }
}

錯誤的原因已經由其他人很好地解釋了。 這種選擇既簡單又直接,您不可能遇到該錯誤:

var links = $('#flight-stops-filter ul li a');
links.click(function() {
    stops = links.parent('.active').find('a').map(function() {
        return $(this).text().substr(0,1);
    }).get();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM