Javascript - 更改事件对象同级上的文本

Javascript - Changing text on event object's sibling

本文关键字:文本 对象 事件 Javascript      更新时间:2023-09-26

我正在尝试让我的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!")

提前感谢!

idOfButtonSibling.text是一个

函数

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

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

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

试试这个,但这不是一个好的做法:

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

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

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

等等...