如何使用RoR RJS模板代码检测html页面元素是否存在?

时间:2009-03-20 18:38:07

标签: ruby-on-rails ajax rjs

我尝试了几种方法,但都失败了。

4 个答案:

答案 0 :(得分:3)

正如dbarker所提到的,您可以使用page['theElementID']根据其ID来测试特定HTML元素是否存在。

如果您的目标元素没有ID属性,您还可以使用CSS选择器检查它,包括类名。例如:

if page.select('div.comment').any?
    # Logic here if there is at least one comment
else
    # Logic for no comments
end

page.select上的文档:http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper/JavaScriptGenerator/GeneratorMethods.html#M001632

答案 1 :(得分:0)

实际上,我无法得到

    if page[:element]
        # code here
    end

上班。相反,我最终使用

    page << "if( $('element') ) {"
        # code here
    page << "}"

答案 2 :(得分:-1)

您可以使用JavascriptGenerator的[]方法查找如下元素:

page['theElementId']

以下是详细信息的链接:

Module ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods

答案 3 :(得分:-1)

你可以使用dbarker这样说的话:

 if page['theElementId'].nil?
       # then have you logic here if the element does not exist
 else
       # if the element does exist
 end