如何显示包含具有多个值的变量的div?

时间:2014-08-20 19:19:55

标签: jquery

我有一个名为 locName 的变量,它在我的自定义商店定位器中存储单个位置的名称。当我在搜索后调试console.log locName 时,会返回正确的位置名称。

我想显示包含这些位置名称的div。我的问题是每个位置都存储在同一个变量中。据我所知,它们不是一个数组,所以我不能遍历每个 locName 变量。

jQuery('#locations .loc:contains("'+ locName +'")').fadeIn();

上述代码仅显示其中一个位置,即使console.log列出了需要显示的所有位置。

在if语句中,变量有一个值,并且有多个结果,我该如何循环这些?

请在此处查看此jsfiddle,以获得更好的示例:http://jsfiddle.net/stormlux/drLnmfg6/

1 个答案:

答案 0 :(得分:0)

我建议尝试另一个选择器:

 jQuery('#locations .loc:[data-name="'+ locName.toLowerCase() +'"]').fadeIn()

并在html中小写您的数据名称atrributes,如果您需要重叠搜索,您可以使用属性选择器::[data-name^="name"]

如果您确实需要现有结构或更复杂的定位<div>元素的逻辑,您可以遍历元素集并将逻辑放在那里:

locName = (locName || "").toLowerCase();

jQuery('#locations .loc').each(function() {
  var $el = $(this);
  var dataName = $el.text().toLowerCase();

  if(dataName.indexOf(locName)>=0) {
      $el.fadeIn();
  }
});