J'écris un peu de code dans le prototype.js qui retourne NULL si un identifiant DOM-ID n'a pas été trouvé.
* Error * EvalError * RangeError * ReferenceError * SyntaxError * TypeError * URIError * DOMException * EventException * RangeException
4 Réponses :
Ignorez simplement quelle exception c'est ...
try
{
null.hey()
}
catch(e)
{
//handle it here
}
Je ne crois pas qu'il y ait une unité à trouver. Chrome jette un typeError, mais c'est-à-dire une erreur, vous devrez donc probablement tout attraper et faire de graves hypothèses. Mieux vaut vérifier pour NULL d'abord.
var element = $('someId');
if (element) {
element.show();
// whatever else...
}
Si vous allez à la chaîne. show () code> sur $ ("SIZEID") code> puis vérifiez son résultat en premier. function NullReferenceException(id) {this.id = id}
function $my(id) {
var el = $(id);
if (!el)
throw new NullReferenceException(id);
return el
}
try {
$my("iDontExistId").show();
} catch (e) {
if (e instanceof NullReferenceException)
alert(e.id + " doesn't exist");
}
La bonne façon de gérer cela est de vérifier que NULL avant de faire quelque chose avec un objet. Il y a plusieurs façons sténa de faire cela, le plus court est (comme Alex K) écrivit mais cela me semble être plus difficile à lire. P> Pour répondre à votre Question directement Vous pouvez faire P> $('#someId').show()
Je me rends compte cela et mais mon patron a insisté sur le prototype. J'aime mais cette question est vraiment annying.
Je pouvais simplement vérifier NULL avant d'exécuter une telle déclaration, mais cela devient fatiguant. I> hein? Êtes-vous un développeur ou pas? Ecrire un code robuste avec des chèques est une pratique normale et bonne pratique.
Bon point, mais imbriqué à plusieurs reprises si des clauses rendent mon code vraiment illisible. J'aurais dû dire qu'au lieu de "fatiguer".
accepter la réponse si cela fonctionne pour vous