Javascript - 更改事件对象的兄弟文本

时间:2012-06-21 00:39:06

标签: javascript ruby-on-rails coffeescript haml

我正在尝试让我的js为我的网站工作,这样当用户选择一个文件上传按钮时,该按钮就是事件调用者的兄弟会改变。不幸的是我不能让它工作,因为我缺乏经验,我无法想出更好的方法。我最好的方法是它工作但文本输入的每个按钮上的文本都改变了。有人可以帮帮我吗?这是我的设置和我的咖啡代码:

编辑FIX:

在视图中:

.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!")

先谢谢!

2 个答案:

答案 0 :(得分:0)

idOfButtonSibling.text是一个函数

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

答案 1 :(得分:0)

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

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

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

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

,或者

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

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

依旧......