2012-09-10 38 views
0

所以我試圖在我的文檔的某個部分通過javascript(主要用於優雅降級目的)附加一些代碼給我的所有圖像(翻轉)等等,所以jQuery:not/.not過濾器不能正常工作

注意到我的功能不工作後...我寫了一個超級小功能來測試它,並沒有好處。在這個例子中,我試圖做的是提醒一個圖像ALT標記,但不是一個特定的按鈕div。實質上,將上述功能應用於父div(portSecW)中的所有圖像,而不是關閉按鈕image/div。

所以這個例子的目的,繼承人一些HTML(僞):

<div id="portSecW"> 
    <img src="X" alt="something here"></img> 
    <img src="a" alt="something here"></img> 
    <img src="b" alt="something here"></img> 
    <div class="closeXbtn"><img src="g" alt="something here"></img></div> 
</div> 

這裏是我用盡。

$('#portSecW img:not(".closeXbtn")').click(function(){ 
    alert($(this).attr("alt")); 
    return false; 
}); 

香港專業教育學院也經歷了它這樣

$('#portSecW img').not('.closeXbtn').click(function(){ 
    alert($(this).attr("alt")); 
    return false; 
}); 

香港專業教育學院也嘗試過類似這樣的,但是不工作(這樣的IM假設,雖然我沒有得到任何錯誤,它不能正確建造,因爲報警功能犯規火)

$('#portSecW img.not(".closeXbtn")').click(function(){ 
    alert($(this).attr("alt")); 
    return false; 
}); 

所以不知道我做錯了什麼。

謝謝先進。

注:只是櫃面的人正在尋找中,標有「」接受的答案」爲我工作,但在進一步挖掘我所有的嘗試上述工作,這個問題是我不是跟我如何走過的DOM不夠精確。 。因此,所有的這些做同樣的事情,在這裏工作是我所做的更改,並再次,這些所有的工作

$('#portSecW a').children('img').click(function(){ 
    alert($(this).attr("alt")); 
    return false; 
}); 

$('#portSecW img').not(".closeXbtn img").click(function(){ 
    alert($(this).attr("alt")); 
    return false; 
}); 

$('#portSecW img:not(".closeXbtn img")').click(function(){ 
    alert($(this).attr("alt")); 
    return false; 
}); 

謝謝大家對你的幫助

+1

.closeXbtn是拼寫錯誤?否則這是你的問題之一 –

+0

抱歉拼寫錯誤。 – somdow

回答

1

使用.children()

$('#portSecW').children('img').click(function(){ 
    alert($(this).attr("alt")); 
    return false; 
}); 

.children()方法允許我們通過兒童搜索o f DOM樹中的這些元素,並從匹配元素構造一個新的jQuery對象。

.children()方法從.find()不同之處在於.children()僅行進單個電平向下DOM樹

1

試着在類如去掉引號:

$('#portSecW img:not(.closeXbtn)').click(function(){ 
    alert($(this).attr("alt")); 
    return false; 
}); 

如果做不到這一點,你可以這樣做:

$('#portSecW img').click(function(){ 
    if($(this).hasClass('closeXbtn'))) { /* do something */ } 
}); 
0

試試這個:

$('#portSecW img').not(".closeXbtn img").click(function(){ 
    alert($(this).attr("alt")); 
    return false; 
}); 

OR

$('#portSecW > img').click(function(){ 
    alert($(this).attr("alt")); 
    return false; 
}); 

第二個更準確。這將綁定點擊事件來指導portSecW的孩子。

0

或許,這可以幫助你:

$('#portSecW > img').click(function(){ 
    alert($(this).attr("alt")); 
    return false; 
}); 

...它只會選擇主DIV的直接後裔IMG,省略closeXbtn專區內的一個。

然而,如果你需要保持你的功能,也許這可能是一個更好的使用:

$('#portSecW img:not(:parent(.closeXbtn))').click(function(){ 
    alert($(this).attr("alt")); 
    return false; 
}); 
0

刪除你的「不」,然後編輯這個

$('#portSecW img').click(function(){ 
    if($(this).hasClass('closeXbtn')) 
    //Do some play 
}) 
+0

因爲你只是選擇圖像,但不是在該「portSecw」分區的股利..但如果你想選擇一個div而不是圖像,那麼你需要通過「不」的查詢 – Gautam3164

相關問題