这是我的HTML:
<table>
<tbody><tr>
<td>
<label for="DocumentsName">Názov</label>
</td>
<td>
<input name="DocumentsName" class="input documentsName" value="" style="width: 10em;" type="text">
</td>
</tr>
<tr>
<td>
<label for="DocumentsDescription">Popis</label>
</td>
<td>
<textarea name="DocumentsDescription" id="DocumentsDescription" cols="15" rows="4" class="input" style="width: 340px; font: 1em sans-serif;"></textarea>
</td>
</tr>
<tr>
<td>
<label for="Document1">Doc 1</label>
</td>
<td>
<input name="Document1" class="input document1" style="width: 10em;" type="file">
</td>
</tr>
</tbody></table>
<a href="#" id="addDocumentFileInput">+++++</a>
点击#addDocumentFileInput链接时,我试图从表中获取带有type =“file”的最新输入。
返回null。为什么呢?
<script type="text/javascript">
$(document).ready(function() {
$("#addDocumentFileInput").click(function() {
var $lastFileInput = $(this).prev().children("tr").last().children("input");
alert($lastFileInput.html());
return false;
});
});
</script>
答案 0 :(得分:6)
由于prev()
为您提供了表格元素且没有tr
个子元素,因此只有一个tbody
子元素。一行中没有input
个孩子,只有td
个孩子。
children
仅搜索以下某个级别的元素。
改为使用find
:
$(this).prev().find('input[type="file"]').last()
// or fancy: find('input:file:last')