Как насчет этого:
Array.prototype.contains = function(needle){
for (var i=0; i<this.length; i++)
if (this[i] == needle) return true;
return false;
}
Array.prototype.diff = function(compare) {
return this.filter(function(elem) {return !compare.contains(elem);})
}
var a = new Array(1,4,7, 9);
var b = new Array(4, 8, 7);
alert(a.diff(b));
Таким образом, вы можете сделать array1.diff(array2)
, чтобы получить их разницу (хотя ужасная сложность времени для алгоритма - O (array1.length x array2.length) Я считаю, )
Это должно быть исправлено в iPhone OS 3.0. На какой версии iPhone OS вы это пробуете?
Email: <input id="email" type="text"><br>
URL: <input id="url" type="text"><br>
<script>
//document.getElementById("email").autocapitalize = 'off';
//document.getElementById("url").autocapitalize = 'on';
document.getElementById("email").setAttribute('autocapitalize', 'off');
document.getElementById("url").setAttribute('autocapitalize', 'on');
alert(document.body.innerHTML);
</script>
Если это полезная функция, вам просто нужно будет выбирать между строгой проверкой и удобством для пользователя. Лично я бы выбрал UX в любой день.
Так что я не мог заставить jQuery сделать это, но простой старый javascript, как предложил ddkilzer, работает, поэтому я собрал эту функцию, чтобы применить параметр autocapitalize = 'off' ко всем входам с конкретный класс:
$(document).ready(function(){
// disable autocapitalize on .url, .email fields
unautocapitalize('url');
unautocapitalize('email');
});
function unautocapitalize(cssClass){
var elems = document.getElementsByClassName(cssClass);
for (var j = 0; j < elems.length; j++){
elems[j].setAttribute('autocapitalize', 'off');
}
}