在表格中输入最后一个文件

时间:2011-03-09 08:19:28

标签: javascript jquery

这是我的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>   

1 个答案:

答案 0 :(得分:6)

由于prev()为您提供了表格元素且没有tr个子元素,因此只有一个tbody子元素。一行中没有input个孩子,只有td个孩子。

children仅搜索以下某个级别的元素。

改为使用find

$(this).prev().find('input[type="file"]').last()
// or fancy: find('input:file:last')