我有一个像这样的表结构
<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")
我得到的结果是未定义的。任何人都可以帮助我。
答案 0 :(得分:5)
尝试获取closest('td')
并使用prev()
和find()
。试试这个:
var divId = $(this).closest('td').prev().find('div').prop('id');
$('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;
答案 1 :(得分:3)
你在tr中有一个div,所以你可以使用父元素中的find()
来搜索它。
$(this).closest('tr').find('div').attr('id');
答案 2 :(得分:3)
答案 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");