2013-10-27 142 views
0

基本上,我有兩個完全相同的列表。當我將鼠標放在列表中的一個上時,我希望這兩個列表中的項目都略微不透明。JQuery:語法幫助

我已經多次使用過JavaScript;但是,不是最近。在我對JavaScript相對熟悉之前,我歷史上拒絕使用JQuery。現在我想我會嘗試重新制作一些我以前做過的東西,但我不完全確定我做得正確。

我有這樣的代碼,應該找到一個ul類中的所有li元素,其中一個navlist的文本與被矇騙的文本匹配,並將其不透明度設置爲0.7。不幸的是,這不起作用。任何想法,爲什麼將不勝感激。

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

編輯: 此代碼在一個函數內。當一個鏈接被淹沒時,它將「this」傳遞給lbutt。

編輯#2: 谷歌開發者控制檯不會引發任何錯誤。

編輯#3: 答案:

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

什麼是'lbutt'? –

+0

這已經在上面編輯過了:P – gNerb

+1

您對'css()的參數不正確。請參閱[文檔](http://api.jquery.com/css/)。 –

回答

2

我做了一個的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")

1

我會做這種方式:

$('.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 
    } 
}); 
}); 
+0

* if($(this).text()== txt)......抱歉錯字 –

+0

@samitha,您的編輯引入了語法錯誤。參數用逗號分隔,而不是冒號。您還刪除了所有評論,我不知道爲什麼。 –

+0

我知道,但不能編輯它由於某種原因 –