4

私はこの配列を持っています:[home, info, mail,,,, something, stuff, other]

しかし、私はを削除または置換し,,たい,

試しました:allIDs.replace(",,", ",");しかし、アレイでは機能しないようです

空のエントリがある理由は次のとおりです。

$(document).find('DIV').each(function(){
    allIDs.push(this.id); })

すべてのDIVのID名にインデックスを付けて、重複があるかどうかを確認し、現在生成されているDIVIDの名前を変更します。

find()または、IDが定義されているDIVのみを使用したいと思います。

4

6 に答える 6

2

$('div[id]')代わりに試してください。属性が定義されているすべてのdiv要素を選択します。id

于 2012-06-09T14:27:04.337 に答える
2

これは本当にうまくいきます:

theArray = theArray.filter(function(e) { return e; });
于 2012-11-04T07:21:06.290 に答える
1

あなたの集まりをこれに変えてくださいid...

var allIDs = $(document).find('DIV')
                        .map(function(){ return this.id || undefined })
                        .toArray();

にIDがない場合はDIVundefinedが返され、結果の配列には何も追加されません。

于 2012-06-09T14:26:44.760 に答える
0

必要なのは、配列から空の値を削除することであり、私が推測するに置き換えないこと,,です,

ここで試してください

于 2012-06-09T14:22:22.143 に答える
0

divIDが定義されているsのみを取得してみてください。

$(document).find('div[id]').each(function(){
    allIDs.push(this.id); });
});

ただし、アレイをクリーンアップする場合は、次のようにします。

allIDs = clean_up(allIDs);

function clean_up(a){
    var b = []
    for(i in a) if(a[i] && a[i].length) a.push(a[i]);
    return a;
}
于 2012-06-09T14:31:13.590 に答える
0

javascriptでは、問題を解決するために配列内の「、、、」を削除することはできません。

配列['home'、'info'、''、''、''、''、'mail'、'something'、'stuff'、'other']を意味しますか?

空の文字列があり、それらを削除したいとします。

簡単なjavascript関数を使用できます。

allIDs = ["home", "info", "", "", "", "", "mail", "something", "stuff", "other"];

remove_empty_str = function(arr) {
  new_array = [];
  for (ii = 0, len = arr.length; ii < len; ii++) {
    item = arr[ii];
    if (item !== "" || item !== null || item !== (void 0)) {
      new_array.push(item);
    }
  }
  return new_array;
};

newIDs = remove_empty_str(allIDs);

alert(newIDs);

jQueryの出力を行う前に、配列を処理する方がよいと思います。

他のアプリでもremove_empty_str()を再利用できます。

于 2012-06-09T15:44:51.320 に答える