我有一个名为 locName 的变量,它在我的自定义商店定位器中存储单个位置的名称。当我在搜索后调试console.log locName 时,会返回正确的位置名称。
我想显示包含这些位置名称的div。我的问题是每个位置都存储在同一个变量中。据我所知,它们不是一个数组,所以我不能遍历每个 locName 变量。
jQuery('#locations .loc:contains("'+ locName +'")').fadeIn();
上述代码仅显示其中一个位置,即使console.log列出了需要显示的所有位置。
在if语句中,变量有一个值,并且有多个结果,我该如何循环这些?
请在此处查看此jsfiddle,以获得更好的示例:http://jsfiddle.net/stormlux/drLnmfg6/
答案 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();
}
});