2012-10-05 58 views
0

我對jQuery數組對象有疑問。 讓我簡單描述一下:我有兩個數組叫brandsLinkfloorLink。 當用戶點擊任何鏈接時,我將該特定品牌名稱存儲在一個名爲brandName的變量中,並且我在第二個數組內查看變量。如果找到了,我會寫一些其他的方法。我附上圖片以供參考。我認爲這會有所幫助。
下面是代碼:如何找出jQuery數組對象中的特定字符串?

$('document').ready(function() { 

    var brandsLink = $('.brandLinks li a[id]'); 
    var floorLink = $('#orionPlan .mapContainer area[id]'); 

    brandsLink.click(function(e){ 
     var brandName = this.id; 

     if(brandName == floorLink.find(brandName)){ 
      console.log('yes both are matching.'); 
     } 
     else { 
      console.log('sory.'); 
     } 
    }); 
}); 

reference image

感謝, 納雷什·庫馬爾

回答

0
  1. 你不能使用這種方式的ID。文件中的ID必須是唯一的。
  2. find通話將搜索'someID'時,它應該尋找'#someID'
  3. 如果沒有找到匹配,您將得到比較'someID'到DOM節點

您需要切換到使用類別,或以您的ID爲前綴來使它們唯一(例如,floor-,brand-)。你也需要改變你的比較。

考慮以下標記:

<ul class="brandLinks"> 
    <li><a id="brand-zara" data-name="zara">Zara</a></li> 
    ... 
</ul> 

... 

<map name="..." class="mapContainer"> 
    <area id="floor-zara" data-name="zara" shape="rect" coords="..." /> 
    ... 
</map> 

你點擊的處理器也可以說:

brandsLink.click(function() { 
    var name = $(this).data('name'); // name = "zara" 
    var match = floorLink.find('#floor-' + name); 
    if(match.length > 0) { 
     console.log('a matching area was found in floorLink'); 
    } else { 
     console.log('sorry.'); 
    } 
}); 
+0

我第一次給了name屬性,我得到了同樣的錯誤。所以最後我改爲id屬性。那麼我也沒有得到正確的比賽。 –

+0

@ user1614271:是的,那是因爲這只是這個代碼錯誤的幾件事之一。我已經更新了一個工作代碼的樣子。 –

+0

好的,讓我試試。 –

相關問題