如何在jquery数组对象中找到特定的字符串?

时间:2012-10-05 11:56:04

标签: javascript jquery html css

我对jQuery数组对象有疑问。 让我简要描述一下:我有两个名为brandsLinkfloorLink的数组。 当用户点击任何链接时,我将该特定品牌名称存储在名为brandName的变量中,而我在第二个数组中检查的变量。如果找到了,那么我会写一些其他的方法。我附上一张图片供参考。我认为这会有所帮助 这是代码:

$('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

感谢, naresh kumar

1 个答案:

答案 0 :(得分:0)

  1. 您不能以这种方式使用ID。 ID必须在文档中是唯一的。
  2. 您的find来电将在搜索'someID'时搜索'#someID'
  3. 如果您 找到匹配项,那么您将'someID'与DOM节点进行比较
  4. 您需要切换到使用类,或者为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.');
        }
    });