Javascript 仅选择由其类标识的元素的子元素

Javascript 仅选择由其类标识的元素的子元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,如何仅在由我单击的元素的类标识的元素的子元素上激活单击事件 我尝试了这个,但似乎激活了页面上.a-collaps-按钮的所有onclick事件,我有多个.collaps按钮和多个.a-collaps-按钮 对于CSS,我这样做了,而且很有效 $(function () { $('.collaps-button').hover(function () { $(this).children('.a-collaps-button').css('color', '#f44242');

如何仅在由我单击的元素的类标识的元素的子元素上激活单击事件

我尝试了这个,但似乎激活了页面上.a-collaps-按钮的所有onclick事件,我有多个.collaps按钮和多个.a-collaps-按钮

对于CSS,我这样做了,而且很有效

$(function () {
  $('.collaps-button').hover(function () {
    $(this).children('.a-collaps-button').css('color', '#f44242');
    $(this).children('.a-collaps-button').css('text-decoration', 'none');
  }, function () {
    $(this).children('.a-collaps-button').css('color', 'white');
    $(this).children('.a-collaps-button').css('text-decoration', 'none');
  });
});

你的主要问题是你的HTML是无效的。不能嵌套可单击的元素,即不能在按钮中放置a元素

要解决这个问题,删除a元素,只需将单击该a时执行的任何逻辑附加到按钮的click事件。还要注意,您不应该使用过时的on*事件属性。使用不引人注目的事件处理程序,如addEventListener或jQuery的on或事件快捷方式方法,如click

还要注意,您不应该使用JS来修改UI。您的悬停逻辑更适合CSS。试试这个:

$'.collaps按钮'.单击函数{ showModalContentjs‘modificy’; }; 函数showModalContentjsfoo{ console.logfoo; } .collaps按钮{ 颜色:白色; 文本装饰:无 } .collaps按钮:悬停{ 颜色:f44242; }
修改为什么使用js来设计悬停css?我也不认为按钮内的锚是正确的valid@Pete我将重新打开这个,因为当这个副本与OPs问题匹配时,他们的HTML中有一个巨大的缺陷,这使得问题的要点变得毫无意义。我使用元素是因为我使用ajax,而不是在每次onclick事件后重新加载页面。所以我在一个for mantain中使用了我在另一个页面中创建的按钮样式,在这里我不使用Ajax,不幸的是,你不能这样做。你必须使用其中一个。无论你选择哪一个,上面的逻辑都是一样的。您可以很容易地使用CSS使a元素看起来像按钮,反之亦然
$(function () {
  $('.collaps-button').hover(function () {
    $(this).children('.a-collaps-button').css('color', '#f44242');
    $(this).children('.a-collaps-button').css('text-decoration', 'none');
  }, function () {
    $(this).children('.a-collaps-button').css('color', 'white');
    $(this).children('.a-collaps-button').css('text-decoration', 'none');
  });
});