J'ai essayé plusieurs façons mais toutes échouent.Comment puis-je détecter si un élément de page html existe en utilisant le code RoR RJS Template?
Répondre
Vous pouvez utiliser le [] méthode du JavascriptGenerator pour trouver un élément comme celui-ci:
page['theElementId']
Voici un lien vers les détails:
Module ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods
Uhmm ... l'avez-vous essayé ??? Que se passe-t-il si l'élément n'est pas là? Ce que vous avez décrit est un moyen de sélectionner l'élément ... Je cherche un moyen de détecter l'existence. La documentation en ligne n'est pas très claire. – fooledbyprimes
Vous pouvez utiliser ce que dbarker dit comme ceci:
if page['theElementId'].nil?
# then have you logic here if the element does not exist
else
# if the element does exist
end
Comme dbarker mentionné , vous pouvez utiliser page['theElementID']
pour tester si un élément HTML spécifique existe en fonction de son ID.
Si votre élément cible n'a pas d'attribut ID, vous pouvez également le vérifier avec un sélecteur CSS, y compris les noms de classe. Par exemple:
if page.select('div.comment').any?
# Logic here if there is at least one comment
else
# Logic for no comments
end
Documentation sur page.select
: http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper/JavaScriptGenerator/GeneratorMethods.html#M001632
En fait, je ne pouvais pas obtenir le
if page[:element]
# code here
end
à travailler. Au lieu de cela, j'ai fini par utiliser
page << "if($('element')) {"
# code here
page << "}"
Il serait utile si vous nous avez dit de quelles façons vous avez essayé et échoué. –