2011-01-04 5 views
2

を与える私は混乱しています:より行、私は備考欄に異なる結果が得られます。私は、「バリュー」をコメントアウトすると、次のコードjQueryのセレクタが不明確な結果に

var ProductFeatures = []; 

for (var i = 1; i < 3; i++) { 
    ProductFeatures.push({ 
     Guid: $('#FeatureListTable tr').eq(i).attr('id'), 
     Value: $('#FeatureListTable td:nth-child(5)').eq(i-1).val(), 
     Remark: $('#FeatureListTable td:nth-child(6) input').eq(i-1).val() 
    }); 
} 

で起こっていただきました!コメントがないとき

// Value: $('#FeatureListTable td:nth-child(5)').eq(i-1).val(), 

なぜこれが起こりますか?

事前のおかげで、ジュリアン

+0

未来にこの質問を読む人 - あなたが何をしないかの例を探していない限り、あなたのプロジェクトにこのコードを使用しないでください。 –

答えて

0

ないあなたがValue行をコメントアウトするとき、なぜRemark値が変化するであろうことを確認、この行:

Value: $('#FeatureListTable td:nth-child(5)').eq(i-1).val(), 

は...のみ(nullまたはundefinedを返しますフォーム入力ではなく<td>valueを取得しようとしているため、どちらが覚えていないかわかりません)。

この種のデータ構造は、jQueryの.map()メソッドを使用するほうがずっと優れています。

+0

@パトリック - コードが悪いと私は全く同意します。私はそれを改善する方法を見つけようとしていましたが、その結果がラン間で変化していることに気付きました。それから、それを修正して効率化する方法をもっと知的な質問をすることができました。 –

+0

@ジュリアン:申し訳ありませんが、質問を誤って読んで、他の人のコードを見ていると思っていました。私は私の答えの最初の部分を削除します。 – user113716

+0

@パトリック - 行がコメントアウトされるとき、Remarkフィールドの結果は期待どおりです。 Valueフィールドがコメントアウトされていない場合、実際にはそのコメントはスキップされ、テーブルの次の行の結果が返されます。 –

関連する問題