nim*_*rod 0 html javascript css jquery
我有不同divs的东西id="item".当我选择其中一个时divs,应该将新类添加到a已选择div的位置.当ID不唯一时,有没有办法做到这一点?
HTML:
<div class="something" id="item">
<a href="#" class="something">...</a>
</div>
<div class="something" id="item">
<a href="#" class="something">...</a>
</div>
<div class="something" id="item">
<a href="#" class="something">...</a>
</div>
<div class="something" id="item">
<a href="#" class="something">...</a>
</div>
Run Code Online (Sandbox Code Playgroud)
JavaScript(我尝试过,但不起作用):
// changes all links on the website
$("body").delegate('#item', 'click', function() {
$( "a" ).addClass( "active" );
});
Run Code Online (Sandbox Code Playgroud)
编辑:我正在使用该delegate函数,因为我使用PHP创建所有div,否则未注册click事件.
不要有非唯一的ID,这是无效的.除了无效的ID之外,这不起作用,因为您使用的$("a")是针对所有链接而不是特定链接.
HTML:
<div class="something" id="item1">
<a href="#" class="something">...</a>
</div>
<div class="something" id="item2">
<a href="#" class="something">...</a>
</div>
<div class="something" id="item3">
<a href="#" class="something">...</a>
</div>
<div class="something" id="item4">
<a href="#" class="something">...</a>
</div>
Run Code Online (Sandbox Code Playgroud)
JS
// I doubt your actual site uses something in both cases,
// but I made this more explicit.
$("body").on( 'div.something', 'click', function() {
$('.active').removeClass( 'active' );
// Use this to add active to div
$( this ).addClass( "active" );
// Use this to add active to link
$( this ).find( 'a' ).addClass('active");
});
Run Code Online (Sandbox Code Playgroud)
另外请注意,我改变delegate以on假设你正在使用最新版本的jQuery的-如果不回去delegate