0

*編集*問題は、変数をnull変数として定義することにあります(getElementByXpathエリアを参照してください)この問題を助けてください*編集*

電卓用に多数の入力ボックスの値が収集されるコードがあります。入力ボックスの数は、createCalcutalor() 関数でユーザーが決定します。入力ボックスの値は、ユーザー定義の getElementByXpath() 関数 (var として使用) によって収集されます。次に、値が配列に入れられます。

var getElementByXpath = function (path) {
return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
};

これは、テキスト ボックスの作成方法のために必要です。ここに問題があります。テキスト ボックスが空の場合、値はエラーを生成し、配列に配置されず、消去されます (以下のコードを参照)。代わりにエラーを生成し、それ以上の JavaScript の実行を許可しません。
コード:

function grabInputNumbers() {
var inputOne = getElementByXpath("//html/body/div/div[2]/div/div/div/div/input[1]").value;
var inputTwo = getElementByXpath("//html/body/div/div[2]/div/div/div/div/input[2]").value;
var inputThree = getElementByXpath("//html/body/div/div[2]/div/div/div/div/input[3]").value;
var inputFour = getElementByXpath("//html/body/div/div[2]/div/div/div/div/input[4]").value;
var inputFive = getElementByXpath("//html/body/div/div[2]/div/div/div/div/input[5]").value;

var allInputs = [inputOne, inputTwo, inputThree, inputFour, inputFive];

allInputs = allInputs.filter(function() { return true; });

alert(allInputs);
}

私は JavaScript の仮想幼児です (HTML/CSS/Javascript を 1 か月前に始めました)。目的または実行に関する質問は、おそらくサイト (コードのダウンロード: http://www.mediafire.com/download/ftajp5r8uhp5yy7/marshallRogers.zip ) を参照することで解決できます。

4

1 に答える 1

1

filter値が真実である場合は返す必要がありますtrue。現在、nullも含めtrueてすべての値を返しています。

allInputs.filter(function(value){ return value; });

しかし、これは少し短いです:

allInputs.filter(Boolean);

空の文字列、ゼロ、null、および false にキャストされる値など、偽の値はすべて削除されることに注意してください。

于 2013-09-29T23:49:23.190 に答える