未捕获的TypeError:对象#<htmlinputelement>没有方法&#39; datepicker&#39; </htmlinputelement>

时间:2014-03-20 20:29:18

标签: jquery jquery-ui-datepicker

我有以下html:

<table>
    <tr>
        <td>
            <select id="one">
                <option>some option</option>
                <option>some option</option>
                <option>some date</option>
                <option>some option</option>
                <option>some date</option>
            </select>
        </td>
        <td>
            <select id="two">
                <option>some option</option>
                <option>some option</option>
                <option>some date</option>
                <option>some option</option>
                <option>some date</option>
            </select>
        </td>
    </tr>
    <tr>
        <td><input type="text" id="1" /></td>
        <td><input type="text" id="2" /></td>
    </tr>
</table>

以及以下javascript:

$("select").change(function() {
    var element = this;
    var value = $('#one').find(":selected").text();
    var id = ""
    if(value.match(/date/)) {
        switch(element.id) {
            case "one":
                id = "1";
                break;
            case "two":
                id = "2";
                break;
        }
    }

    addDatePicker(id);
});

function addDatePicker(id) {
    var element = document.getElementById(id);
    $(function() {
        element.datepicker();
    });
}

在Chrome中我得到了我作为问题标题的错误。我已经在addDatePicker()函数中提醒了id变量,我得到了正确的值,所以我不确定为什么会出现这个错误。

1 个答案:

答案 0 :(得分:3)

你需要一个jQuery对象

function addDatePicker(id) {
    $('#' + id).datepicker();
}

change事件处理程序放在DOM中,而不是在addDatePicker函数内的DOM就绪