JQuery:语法帮助

JQuery: Syntax assistance

本文关键字:帮助 语法 JQuery      更新时间:2023-09-26

基本上,我有 2 个完全相同的列表。当我将鼠标悬停在其中一个列表上时,我希望两个列表中的项目都略微不透明。

我用过很多次JavaScript;但是,不是最近。我以前拒绝使用JQuery,直到我相对熟悉JavaScript。现在我想我会尝试重新制作我不久前制作的东西,但我不完全确定我做得是否正确。

我有这段代码,它应该在带有一类 navlist 的 ul 中找到所有 li 元素,其文本与鼠标悬停在上面的文本匹配,并将其不透明度设置为 0.7。不幸的是,这不起作用。任何关于原因的想法将不胜感激。

$(".NavList li:contains('" + $(lbutt).text() + "')").css("opacity:0.7;");

编辑:此代码位于函数内。当链接悬停在上面时,它将"this"传递给lbutt。

编辑#2:谷歌开发者控制台不会抛出任何错误。

编辑#3:答案是:

$(".NavList li:contains('" + $(lbutt).text() + "')").css("opacity","0.7");

我做了一个jsfiddle,展示了如何在这里做类似的事情:http://jsfiddle.net/AAvDN/

.HTML:

<ul class="hoverme">
    <li>one</li>
    <li>two</li>
</ul>
<ul class="navlist">
    <li>one</li>
    <li>two</li>
</ul>

JavaScript:

$(".hoverme li").hover(function() {
    var what = $(this).text();
    $(".navlist li:contains('" + what + "')").css("color", "red");
}, function() {
    $(".navlist li").css("color", "black");
});

我看到的主要语法错误是您使用的是.css("opacity:0.7")而不是.css("opacity", "0.7")

我会这样做:

$('.YourClass li').hover(function(){
var txt = $(this).text(); // get the text of hovered element
$('NavList li').each(function(){ // loop through your li elements to check if text is the same
    if ($(this).text() == txt){
        $(this).css('opacity','0.7'); // set your CSS rules
    }
});
});