le nom de la fonction javascript est getElementsByClassName
avec un s (car en HTML, contrairement à id
s qui sont uniques dans un document donné, un nom de classe peut être attribuée à plusieurs éléments de la même page). Si vous regardez le code source de votre page, vous pouvez voir qu'il y a plusieurs éléments étiquetés avec les classes temp
et tempF
. Vous devez sélectionner le bon (premier? Deuxième?) En fonction de celui que vous voulez extraire.
Par exemple:
tempString = [deg stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('temp tempF')[0].innerText;"];
(Pas besoin d'utiliser stringWithFormat
si vous n'avez pas un paramètre de format, qui est juste surpuissant, il suffit d'utiliser le littéral directement chaîne)
PS: Juste pour être clair sur le vocabulaire, notez que le fait que l'élément est écrit <div class="temp tempF">
dans le HTML signifie que c'est un élément div
qui s'applique deux classes distinctes CSS, à savoir temp
et tempF
. Donc, cet élément n'est pas "un élément avec le nom de classe temp tempF
" mais plutôt "un élément avec deux noms de classe temp
et tempF
appliqué".
Astuce: Pour déboguer votre javascript, ouvrez la page dans un navigateur comme Chrome ou Safari sur votre Mac, montrer l'inspecteur de la page et cliquez sur l'onglet Console de sorte que vous pouvez taper le code javascript ici et tester un peu avec des expressions différentes. Dans votre cas, vous auriez vu que votre fonction a été mal typée, manquant le "s" dans le nom, et une fois corrigée, vous auriez vu que le résultat de getElementsByClassName
renvoie plusieurs éléments et pas seulement un.
[0] simple mais génial! –