Boş bir sətri yoxlayın yoxsa yox.

JQuery-də dizinin boş və ya boş olmadığını yoxlamaq üçün necə məlumat istərdim. array.length === 0 sınadı, amma işə yaramadı. Bu da səhvlərə səbəb olmadı.

Bu kod:

 var album_text = new Array(); $("input[name='album_text[]']").each(function(){ if( $(this).val()  $(this).val() != '') { album_text.push($(this).val()); } }); if (album_text.length === 0) { $('#error_message').html("Error"); } else { // send data } 
80
26 авг. giriş girişi 26 aug. 2011-08-26 02:01 '11 at 2:01 2011-08-26 02:01
@ 4 cavab

Sənin seçiciniz həqiqətən işlədiyi müddətcə kodun uzunluğunu yoxlayan kodunuzla yanlış bir şey görmürəm. Bu, istədiyiniz şeyi etməlidir. Kodunuzu daha sadə və sadə bir şəkildə təmizləmək üçün bir çox yol var. Təmiz etdiyimə dair qeydləri olan versiya buradan çıxarılır.

 var album_text = []; $("input[name='album_text[]']").each(function() { var value = $(this).val(); if (value) { album_text.push(value); } }); if (album_text.length === 0) { $('#error_message').html("Error"); } else { //send data } 

Nə etdiyinizi və dəyişdiyim şeylər haqqında bəzi qeydlər.

  • $(this) həmişə etibarlı jQuery obyektidir, beləliklə if ($(this)) yoxlamaq üçün heç bir səbəb yoxdur. Daxilində hər hansı bir DOM obyekti ola bilər, ancaq siz lazım olsa, $(this).length ilə yoxlaya bilərsiniz, amma burada bu lazım deyil, çünki heç bir element olmadıqda .each() belə ki, sizin .each() $(this) hər zaman bir şey olacaq.
  • Eyni funksiyada $ (bu) bir neçə dəfə istifadə etmək səmərəsizdir. Yerli dəyişən bir dəfə onu almaq daha yaxşıdır və onu bu yerli dəyişəndən istifadə edin.
  • new Array() deyil, [] ilə diziləri işə salmaq tövsiyə olunur.
  • if (value) string) kimi value == null , value == undefinedvalue == "" qarşı qoruyacaq, beləliklə if (value (value != "")) etmək lazım deyildir. Sadə bir şey edə bilərsiniz: if (value) bütün üç şərtləri yoxlayın.
  • if (album_text.length === 0) boş olub-olmadığını söyləyirsə, əgər düzgün bir başlanğıclaşdırılmış array (burada olduğu if (album_text.length === 0) ).

Bu seçici $("input[name='album_text[]']") ilə nə etməyə çalışırsınız?

119
26 авг. Cavab verilir jfriend00 26 aug. 2011-08-26 02:48 '11 'də 2:48' də 2011-08-26 02:48

JQuery istifadəçisi, dizinin elementləri və ya olmadığını yoxlamaq üçün EmptyObject edir.

border=0
 var testArray=[1,2,3,4,5]; var testArray1=[]; console.log(jQuery.isEmptyObject(testArray)); //false console.log(jQuery.isEmptyObject(testArray1)); //true 
53
02 июня '14 в 19:38 2014-06-02 19:38 cavab Mayank Raipure tərəfindən 02 iyun 'da 19:38' da verildi 2014-06-02 19:38

Jquery $ .isEmptyObject istifadə etmək təhlükəli mənə görünür ki, dizinin boş olub olmadığını yoxlamaq üçün, @ jesenko qeyd etdi. Yalnız bu problemlə tanış oldum.

IsEmptyObject doc- də deyir:

Dəlil həmişə sadə javascript obyekti olmalıdır.

$.isPlainObject ilə təyin edə bilərsiniz. Return $.isPlainObject([]) səhvdir.

6
22 февр. Cavab rhinoxi tərəfindən verilir 22 fevral. 2016-02-22 10:06 '16 at 10:06 2016-02-22 10:06

Dizinize daxil etməzdən əvvəl '' (boş simli) '' ni kontrol etməlisiniz. Boş olan dizinizdə elementlər var. Sonra album_text.length === 0 yaxşı işləyəcək.

6
26 авг. Daniel A. Ağa 26 Avqust cavab verildi . 2011-08-26 02:03 '11 'də 2:03' da 2011-08-26 02:03

bağlı digər suallar və ya bir sual