2012-02-20 37 views
1

我想創建一對夫婦,如果語句使用包含(* =)和img(=)來獲取ID。我可能會做錯什麼?基於多個變量(特定字符串)的JQuery select

if($("div[id*='Point_'], [img='gray.png']").length > 0) { 

// do something gray 
} 

if($("div[id*='Point_'], [img='red.png']").length > 0) { 

// do something red 
} 
<div id="Point_1"> 
    <img src="gray.png"> 
</div> 
<div id="Point_2"> 
    <img src="red.png"> 
</div> 
+0

你有嘗試切換你的報價和雙引號?即時通訊不知道它是否重要,但jQuery網頁都有屬性值雙引號。 – jbabey 2012-02-20 19:09:24

+0

@ jbabey無所謂,只要你一致。如果您的總體選擇器包含在雙引號中,則使用單引號(或者根本沒有值),以匹配您的屬性值。如果您的總體選擇器包含在單引號中,請使用雙引號。就我個人而言,我更願意將我的Javascript字符串包含在單引號中,因爲如果我需要(例如動態創建和附加DOM節點),可以更容易地將HTML複製到它們中。 – 2012-02-20 19:21:42

+0

@AnthonyGrist我更喜歡單引號,並感謝您的信息! – jbabey 2012-02-20 19:23:49

回答

4

您正試圖使用​​標籤選擇器,如屬性選擇器。如果要匹配<img>標記,其中src屬性等於gray.png,那麼正確的選擇器是$('img[src="gray.png"]')

此外,這可能是也可能不是正確的你想做什麼,但在jQuery選擇器中的逗號就像一個OR,所以你說「給我任何<div>元素,其中id屬性包含文本'Point_'或任何<img>元素,其中src匹配'gray.png'。「如果這就是你想要的,那就好。

然而,似乎更可能是你想要做的是選擇<img>元素的src等於gray.png這是一個<div>內含有「Point_」的ID,所以選擇應該是:

$('div[id*="Point_"] img[src="gray.png"]') 
+0

謝謝,非常有道理。 – user1040259 2012-02-20 19:18:26

2

如果你想選擇你需要從字符串刪除逗號的特定字符串。用逗號分隔選擇器會根據任何選擇器選擇多個元素。沒有逗號在所有選擇器上選擇匹配。見here