我知道这很容易,但我无法理解!
<ul class="footer_nav">
<span class='footer_header'>01</span>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
</ul>
<ul class="footer_nav">
<span class='footer_header'>01</span>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
</ul>
我有上面的HTML。我想做的是当li.a
上发生悬停事件时,我更改了.span的CSS值,但只在currentTarget中。
我正在使用
e.currentTarget
但是使用此方法如何选择当前UL
中可以更新的其他元素,但仅限于当前UL
并非所有范围
Here is my current coffeescript...
$('ul.footer_nav').hover (e) ->
changeFooterHover(e)
##functions
changeFooterHover = (e) ->
span = e.currentTarget.parentNode.getElementsByTagName('span')
span.toggleClass("selected");
错误
Uncaught TypeError: Object #<NodeList> has no method 'toggleClass'
答案 0 :(得分:1)
如果您正在使用jQuery,那么您可以执行以下操作:
$("ul li a").mouseenter(function(e){
var anchorElt = $(this);
anchorElt.parent().parent().find("span").text(anchorElt.text());
});
如果您的html中有多个ul元素,那么这是当然的,那么您可以从ul元素中找到范围并更改值。
答案 1 :(得分:0)
你可以找到范围:
var elem = document.getElementsByClassName('footer_header')[0];
...或者使用jQuery:
var elem = $(this).closest('ul').find('.footer_header');
答案 2 :(得分:0)
答案 3 :(得分:-1)
您可以使用 .closest()函数来获取所需的UL元素。
$( 'li a' ).hover( function() {
$( this ).closest( 'ul' ).find( 'span' ).html( 'over' );
},
function() {
$( this ).closest( 'ul' ).find( 'span' ).html( 'out' );
});
上述内容可能会帮助您走上正确的轨道。