我还是jQuery的新手,遇到了一个小问题。为什么.click
函数不能这样工作:
var $rowStartDate = $("span[id^=rowStartDate]");
var $rowEndDate = $("span[id^=rowEndDate]");
$($rowStartDate, $rowEndDate).click(function() {
//Notice the variables in this selector
然而,当我将元素从它们的变量中移出时,它就起作用了:
$("span[id^=rowStartDate], span[id^=rowEndDate]").click(function() {
$()
的第二个参数是上下文。因此,您可以使用add()
来代替:
$rowStartDate.add($rowEndDate).click(function() { ... });
两者有很大不同。您需要查看jQuery()函数的定义。当您说$("span[id^=rowStartDate], span[id^=rowEndDate]").click(function() {
时,您正在将一个字符串传递给jQuery()
函数,该函数随后对该字符串进行操作。当你说$($rowStartDate, $rowEndDate).click(function() {
时,你正在向期望的函数传递两个参数:
jQuery( selector [, context] )
jQuery( element )
jQuery( object )
jQuery( elementArray )
jQuery( jQuery object )
jQuery()
您也可以使用class来实现这一点。
这是Html
<span class='rowdate' id='rowStartDate'></span>
<span class='rowdate' id='rowEndDate'></span>
这是javascript
$('.rowdate').click(function(){
//Maybe you want to know which span is clicked?
if($(this).attr("id")=="rowStartDate"){
//rowStartDate clicked function starts here
}else{
//rowEndDate clicked function starts here
}
})