0

要素の2つのブロックを比較して、それらが同じであることを確認したいと思います。比較したい項目には非表示の入力があり、このエラーが発生しています。これは非表示の入力に関係していると思います。

TypeError:選択を持てない入力要素でselectionDirectionにアクセスしています。

これが私のコードの簡略化されたバージョンです(そしてJSFiddleにあるものも):

test("compare input", function() {
  var input1 = $('<input/>').attr("value", 'cool_play');
  var input2 = $('<input/>').attr("value", 'cool_play');
  deepEqual(input1, input2);
});

test("compare hidden input", function() {
  var input1 = $('<input/>').attr("type", "hidden").attr("value", 'cool_play');
  var input2 = $('<input/>').attr("type", "hidden").attr("value", 'cool_play');
  deepEqual(input1, input2);
});​

最初の例は合格ですが、2番目の例はエラーをスローします。

jsfiddleの例は次のとおりです:http://jsfiddle.net/HLG5y/1/

入力要素を非表示のクラスと比較する方法はありますか?私はこれを間違った方法で試していますか?ありがとうございました。隠された入力も比較できるはずだと思います。

4

1 に答える 1

1

これは理想的な解決策ではありませんが、比較することでこれを回避しました

equal(actual.html(), expected.html());

ここで、実際の値と期待される値は要素のブロックです。

于 2012-12-21T21:44:01.250 に答える