我有以下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变量,我得到了正确的值,所以我不确定为什么会出现这个错误。
答案 0 :(得分:3)
你需要一个jQuery对象
function addDatePicker(id) {
$('#' + id).datepicker();
}
将change
事件处理程序放在DOM中,而不是在addDatePicker
函数内的DOM就绪