【问题标题】:Javascript - Changing text on event object's siblingJavascript - 更改事件对象兄弟上的文本
【发布时间】:2012-06-21 00:39:06
【问题描述】:

我正在尝试让我的 js 为我的网站工作,这样当用户选择一个文件来上传按钮上的文本时,事件调用者的兄弟会发生变化。不幸的是,我无法让它工作,并且由于我在 js 方面的经验不足,我无法想出更好的方法。我最好的方法使它起作用,但是每个具有文件输入的按钮上的文本都发生了变化。有人可以帮我吗?这是我的设置和我的咖啡代码:

使用修复编辑:

在视图中:

.assets-fields.pull-left.span3
  - count=0
  = f.simple_fields_for :assets do |builder|
    - if builder.object.new_record?
      .file-wrapper.pull-left
        .btn.btn-warning
          %span.icon-camera
          .photo-text{:id => "asset_#{count}"} Choose a Photo
          - count = count + 1
          = builder.file_field :photo

在我的 js.coffee 中:

$ ->
  $("input:file").change (event) ->
    idOfInput = event.target.id
    console.log idOfInput
    idOfSibling = $('#' + idOfInput).prev().attr('id')
    console.log idOfSibling
    $('div#' + idOfSibling).text("Photo Selected!")

提前致谢!

【问题讨论】:

    标签: javascript ruby-on-rails coffeescript haml


    【解决方案1】:

    idOfButtonSibling.text 是一个函数

    $(idOfButtonSibling).text("Photo Selected!")
    

    【讨论】:

      【解决方案2】:

      idOfButtonSibling 是 idOfInput 的所有兄弟元素的数组。在更改文本之前,您必须选择一个元素。

      我建议您为每个按钮分配唯一的 ID,并使用它们来引用特定的按钮。

      试试这个,但这不是一个好习惯:

      $(idOfButtonSibling[0]).text = "Photo Selected!"
      

      或者,

      $(idOfButtonSibling[1]).text = "Photo Selected!"
      

      $(idOfButtonSibling[2]).text = "Photo Selected!"
      

      等等……

      【讨论】:

      • 现在一切正常,将更新以显示我的结果,以防将来有人需要它!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多