jQuery中的多个变量.单击



我还是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
   }
})

最新更新