この関数を使用して、属性の存在を確認します。
var hasAttribute = function(el, attr) {
if ("hasAttribute" in el) {
return el.attributes[attr] != null;
}
else if ("outerHTML" in el) {
return (el.outerHTML
.replace(el.innerHTML, "")
.indexOf(" " + attr + "=") > -1);
}
};
問題は、を使用して入力値を設定すると、使用する.val(x)
と値を取得できます.val()
が、hasAttribute
関数はそれを検出できません。このjsfiddleは問題を示しています(最初のアラートは「入力に値があります」と表示され、2番目に表示されると予想していましたが、Chromeでは少なくとも最初のアラートは「入力に値が必要です」と表示されます)。
期待どおりに動作させるには.val(x)
?(または、hasAttribute
これらの種類の値を検出する方法)