获取第二个元素的id

时间:2016-10-05 07:11:31

标签: jquery

我有一个像这样的表结构

<tr>
<td>Cover Banner</td>
<td><div id="coverPreview"></div></td>
<td><input type='file' id="coverBanner"/></td>
</tr>

我要做的是当我点击文件浏览按钮时,我必须得到之前的ID,即&#34; coverPreview&#34;

我确实喜欢这个

$(this).closest('tr').children(':first-child').next().attr("id")

我得到的结果是未定义的。任何人都可以帮助我。

5 个答案:

答案 0 :(得分:5)

尝试获取closest('td')并使用prev()find()。试试这个:

var divId = $(this).closest('td').prev().find('div').prop('id');

&#13;
&#13;
$('input').change(function() {
  var divId = $(this).closest('td').prev().find('div').prop('id');
  console.log(divId);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>Cover Banner</td>
    <td>
      <div id="coverPreview"></div>
    </td>
    <td>
      <input type="file" id="coverBanner" />
    </td>
  </tr>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:3)

你在tr中有一个div,所以你可以使用父元素中的find()来搜索它。

$(this).closest('tr').find('div').attr('id');

答案 2 :(得分:3)

试试这个

 $(this).parent().prev().children().attr("id");

详细了解jQuery Traversing

答案 3 :(得分:1)

@FXML
private Button button1;

@FXML
private Button button2;

@FXML
private Button button3;
...

@FXML
private ToggleButton on;

@FXML
private void initialize() {
    BooleanBinding disable = on.selectedProperty().not();
    button1.disableProperty().bind(disable);
    button2.disableProperty().bind(disable);
    button3.disableProperty().bind(disable);
    ...
}
$('#coverBanner').click(function() {
  console.log($(this).parent().prev().find('div').attr("id"))
})

使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr> <td>Cover Banner</td> <td> <div id="coverPreview"></div> </td> <td> <input type='file' id="coverBanner" /> </td> </tr> </table>.parent().prev()

答案 4 :(得分:1)

简单方法

$("this").parent().siblings().find("div").attr("id");

or

$("this").parent().prev().find("div").attr("id");