Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果我使用jquery同时使用两个类,那么如何使用它?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如果我使用jquery同时使用两个类,那么如何使用它?

Javascript 如果我使用jquery同时使用两个类,那么如何使用它?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我必须选择两个类,但有一个问题,如果我只想将其用于单个类,我如何使用它?如下所示:- $'.city selector ul li,.city selector close'。单击函数{ var selectedCity=$this.text; $'.selected city span'.text selectedcity; } .城市选择器关闭{ 浮动:对; } X 古尔冈 德里 诺伊达 费尔达巴德 Gurgaon听起来您试图描述的是两个独立的点击处理程序。一个用于单击城市,一个用于单击X

我必须选择两个类,但有一个问题,如果我只想将其用于单个类,我如何使用它?如下所示:-

$'.city selector ul li,.city selector close'。单击函数{ var selectedCity=$this.text; $'.selected city span'.text selectedcity; } .城市选择器关闭{ 浮动:对; } X 古尔冈 德里 诺伊达 费尔达巴德 Gurgaon听起来您试图描述的是两个独立的点击处理程序。一个用于单击城市,一个用于单击X:

$'.city选择器ul li'。单击函数{ var selectedCity=$this.text; $'.selected city span'.text selectedcity; } $“.城市选择器关闭”。单击函数{ $'.选定的城市跨度'.文本; } .城市选择器关闭{ 浮动:对; } X 古尔冈 德里 诺伊达 费尔达巴德
Gurgaon如果要处理此问题,可以创建两个不同的事件处理程序

$'.city选择器ul li'。单击函数{ var selectedCity=$this.text; $'.selected city span'.text selectedcity; } $“.城市选择器关闭”。单击函数{ 警报关闭; } .城市选择器关闭{ 浮动:对; } X 古尔冈 德里 诺伊达 费尔达巴德
Gurgaon我也喜欢两个单独的点击处理程序,但是如果您真的想使用一个,您可以使用hasClass函数检查点击元素的类:

$('.city-selector ul li, .city-selector-close').click(function() {
  if (!$(this).hasClass('city-selector-close')) {
    var selectedCity = $(this).text();
    $('.selected-city span').text(selectedCity);
  }
});

但与其他回答者所说的一样,将此功能拆分为两个单独的单击处理程序更有意义。

您可以使用

$(this).attr('class')
因此,在回调函数中,检查是否是city selector close,如果不是,则显示文本

$'.city selector ul li,.city selector close'。单击函数{ 如果$this.attr'class'!=城市选择器关闭{ var selectedCity=$this.text; $'.selected city span'.text selectedcity; } } .城市选择器关闭{ 浮动:对; } X 古尔冈 德里 诺伊达 费尔达巴德
古尔加尼不明白这个问题——为什么在单击关闭图标时要更新文本?只需使用两个单独的事件处理程序。实际上,我可以使用两个单独的事件处理程序来解决这一问题,但我只想知道,当我必须使用单个处理程序时,如何解决此类问题?虽然很难理解这一问题,因为示例毫无意义。@RohitVerma在这种情况下,您可以简单地使用if条件并分离事件。谢谢@Phil,你的回答正是我想要的!我不使用单独的处理程序,因为如果我使用单独的处理程序,那么我必须使用太多的代码两次,这就是为什么我不能这样做that@RoryMcCrossan我同意你的看法,但他想知道如何在一个函数内完成,这就是我提供的。事实上,他应该把它分成两个处理程序,这只是一个替代方案,尽管是一个更糟糕的方案。这不是一个建设性的评论-我道歉。@RohitVerma:那么我不得不使用太多的代码两次-不要重复你自己的咒语是指逻辑,而不是击键。如果编程的主要目标是尽可能少的击键,那么您将编写非常难以支持的代码。当前的示例相对较小,但在一个功能齐全的应用程序中,这项工作将花费您很多、很多小时的令人沮丧的工作—所有这些都只是为了节省一些字节的存储空间。