我有一个有日期输入的表
<td style="background-color:#c6efce"><input type="text" id="datepicker0"></td>
<td style="background-color:#c6efce"><input type="text" id="datepicker1"></td>
<td style="background-color:#c6efce"><input type="text" id="datepicker2"></td>
<td style="background-color:#c6efce"><input type="text" id="datepicker3"></td>
<td style="background-color:#c6efce"><input type="text" id="datepicker4"></td>
我正试图通过第一个访问它
<script>
$(function() {
$( "#datepicker0" ).datepicker({
showButtonPanel: true
});
});
</script>
如何访问所有内容?
答案 0 :(得分:61)
您可以使用“attribute starts-with”选择器:
$(function() {
$("input[id^='datepicker']").datepicker({
showButtonPanel: true
});
});
该选择器将匹配input
值以“datepicker”开头的任何id
元素。另一种方法是给所有必需元素一个共同的类。
您还可以使用以逗号分隔的列表id
选择多个元素:
$("#datepicker0, #datepicker1, #datepicker2"); //List as many as necessary
但如果您需要添加更多输入,那么这不是特别可扩展。
答案 1 :(得分:12)
最好的方法是使用一个类:
<td style="background-color:#c6efce"><input type="text" class="dp" id="datepicker0"></td>
<td style="background-color:#c6efce"><input type="text" class="dp" id="datepicker1"></td>
<td style="background-color:#c6efce"><input type="text" class="dp" id="datepicker2"></td>
<td style="background-color:#c6efce"><input type="text" class="dp" id="datepicker3"></td>
<td style="background-color:#c6efce"><input type="text" class="dp" id="datepicker4"></td>
<script>
$(function() {
$( ".dp" ).each(function(){
$(this).datepicker({
showButtonPanel: true
});
})
});
</script>
但你也可以使用它:
<td style="background-color:#c6efce"><input type="text" id="datepicker0"></td>
<td style="background-color:#c6efce"><input type="text" id="datepicker1"></td>
<td style="background-color:#c6efce"><input type="text" id="datepicker2"></td>
<td style="background-color:#c6efce"><input type="text" id="datepicker3"></td>
<td style="background-color:#c6efce"><input type="text" id="datepicker4"></td>
<script>
$(function() {
$( "#datepicker0,#datepicker1,#datepicker2,#datepicker3,#datepicker4" ).datepicker({
showButtonPanel: true
});
});
</script>
不建议采用第二种方法。
答案 2 :(得分:5)
据我了解你的问题,你正在尝试使用jQuery选择多个ID。这是你如何做到的:
$('#1,#2,#3')
您只需用逗号分隔ID。
但是,这不是实现这一目标的最佳方式。你应该真正使用一个类:为每个td
分配一个类并使用:
$('td.myClass')
或者,您可以为表分配ID并选择其所有td
个孩子。 HTML:
<table id="myTable">
<td>text</td>
<td>text</td>
</table>
jQuery的:
$('table#myTable td')
答案 3 :(得分:0)
您应该使用名为has-datepicker
之类的CSS类来代替ID,并搜索它。
答案 4 :(得分:0)
jQuery UI会自动将“hasDatePicker”类添加到具有日期选择器的所有元素中。您可以在页面中查询类似$(“input.hasDatePicker”)的内容以获取所有日期选择器。
答案 5 :(得分:0)
你也可以使用它
$('#datepicker0,#datepicker1,#datepicker2,#datepicker3,#datepicker4)