我有divs
的{{1}}。当我选择其中一个id="item"
时,应该在divs
添加一个新类,其中div已被选中。当ID不唯一时,有没有办法做到这一点?
HTML:
a
JavaScript(我尝试过,但不起作用):
<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>
编辑:我正在使用// changes all links on the website
$("body").delegate('#item', 'click', function() {
$( "a" ).addClass( "active" );
});
函数,因为我使用PHP创建所有div,否则点击事件未注册。
答案 0 :(得分:6)
不要使用无效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>
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");
});
另请注意,我假设您使用的是最新版本的jQuery,我将delegate
更改为on
- 如果不是,请返回delegate
答案 1 :(得分:1)
$(本).find( “A”)addClass( “活性”);
答案 2 :(得分:-1)
你应该试试这个:
<div class="something" id="item1">
<a href="#" class="otherthing">...</a>
</div>
<div class="something" id="item2">
<a href="#" class="otherthing">...</a>
</div>
<div class="something" id="item3">
<a href="#" class="otherthing">...</a>
</div>
<div class="something" id="item4">
<a href="#" class="otherthing">...</a>
</div>
$(".something").on('click', '.otherthing', function() {
$(this).addClass("active");
});