jQuery这不起作用

时间:2014-09-12 11:52:53

标签: javascript jquery

我的jquery代码有问题:

<ul class="category-titles">
    <li><a id="category-title" href="">Test</a>
    </li>
    <li><a id="category-title" href="">Test 2</a>
    </li>
    <li><a id="category-title" href="">Test 3</a>
    </li>
</ul>

<div class="toolbar">
    <h1 id="results-title">Test</h1>
</div>

$('.category-titles > li > a').mouseover(function() {
    var strTitle = $('.category-titles > li > a', this).text();
    $("#results-title").html(strTitle);
    console.log(strTitle);
});

这是一个链接:http://jsfiddle.net/irider89/Ltd1fp79/6/ 在鼠标输入时,标题应重命名为li标题。

4 个答案:

答案 0 :(得分:3)

当您将事件绑定到锚点时,this引用锚元素。所以只需使用

var strTitle = $(this).text();

而不是

var strTitle = $('.category-titles > li > a',this).text();

DEMO

重要提示: ID是唯一标识符

答案 1 :(得分:1)

如果您在mouseover元素上捕获.category-titles > li > a个事件,则this会引用这些选定的元素。只需使用$(this).text()即可获取悬停元素的文本。

DEMO: http://jsfiddle.net/Ltd1fp79/7/

答案 2 :(得分:1)

只需引用$(this),而不是:

$('.category-titles > li > a').mouseover(function(){
    var strTitle = $('.category-titles > li > a',this).text();
    $("#results-title").html(strTitle);
    console.log(strTitle);
});

使用此:

$('.category-titles > li > a').mouseover(function(){
    var strTitle = $(this).text();
    $("#results-title").html(strTitle);
    console.log(strTitle);
});

答案 3 :(得分:1)

更改此行:

var strTitle = $('.category-titles > li > a',this).text();

到此:

var strTitle = $(this).text();

由于您的活动已经绑定到'.category-titles > li > a'this会引用触发该活动的链接。