【问题标题】:How can I detect if an html page element exists by using RoR RJS Template code?如何使用 RoR RJS 模板代码检测 html 页面元素是否存在?
【发布时间】:2009-03-20 18:38:07
【问题描述】:

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

【问题讨论】:

  • 如果您告诉我们您尝试了哪些方法并失败了,将会有所帮助。

标签: ruby-on-rails ajax rjs


【解决方案1】:

正如 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

【讨论】:

    【解决方案2】:

    其实我是拿不到的

        if page[:element]
            # code here
        end
    

    工作。相反,我最终使用了

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

    【讨论】:

      【解决方案3】:

      您可以使用 JavascriptGenerator 的 [ ] 方法来查找这样的元素:

      page['theElementId']
      

      这里是详细信息的链接:

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

      【讨论】:

      • 嗯...你试过了吗???如果元素不存在会发生什么?您描述的是一种选择元素的方法......我正在寻找一种检测存在的方法。网上的文档不是很清楚。
      【解决方案4】:

      你可以使用 dbarker 说的话:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-12
        • 2019-08-22
        • 1970-01-01
        • 1970-01-01
        • 2020-01-31
        • 1970-01-01
        • 1970-01-01
        • 2021-02-23
        相关资源
        最近更新 更多