0

我对 jQuery 数组对象有疑问。让我简要描述一下:我有两个名为brandsLinkand的数组floorLink。当用户单击任何链接时,我将该特定品牌名称存储在一个名为 的变量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.');   
        }
    });
});

参考图像

谢谢,纳雷什库马尔

4

1 回答 1

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.');
    }
});
于 2012-10-05T11:59:36.750 回答