更有效地在加载时定位子元素的方法

时间:2012-05-11 19:34:19

标签: javascript jquery html jquery-ui-datepicker

在很多情况下,我在表单中使用jQuery很棒的datepicker。我想要一种通用的方法来应用它,而不知道输入的id或类是什么。我想出了这个:

<span id="datePickerChild">
 <input type="text"/>
</span>
<script type="text/javascript">
 $(document.getElementById("datePickerChild").firstChild).datepicker();
</script>

使用mvc3框架,这些输入会在运行时根据帮助程序输入,所以我想要这种动态方法。有没有更有效的方法来做到这一点?

编辑:

使用jQuery 1.4.4

2 个答案:

答案 0 :(得分:2)

这似乎是一种合理的方法。您可以使用jQuery“惯用”地执行此操作,如下所示:

$('#datePickerChild').children().first().datepicker();

甚至:

$('#datePickerChild > input:first').datepicker();
然而,有一点令人困惑的是,你说你想要这样做而不必知道元素的id是什么,尽管你仍然在选择器中使用id。如果你试图“通常”使用那个id(就像在页面上多次出现一样),你会想要使用一个类。在您需要的元素上有一个类之后,您只需将选择器更改为:

$('.date-picker-container').children().first().datepicker();

答案 1 :(得分:1)

好的,所以根据你的评论说你不知道完全 ID并且你不想使用类,你不能只做一个匹配所有类的部分ID匹配他们?类似的东西:

$("[id*=datePicker]").datepicker();