首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >inArray()总是返回false

inArray()总是返回false
EN

Stack Overflow用户
提问于 2012-05-23 19:35:57
回答 1查看 171关注 0票数 1

我不确定如何修复它,但我在使用inArray()时总是得到-1。更明确地说,我是这样做的:

代码语言:javascript
复制
<!-- HTML Markup -->

<nav class="navigation clearfix">
    <a class="home-anchor" data-class="home-anchor" href="#">
        <span class="icons-wrapper">
            <i class="icon-normal-state"></i>
            <i class="icon-active-state"></i>
        </span>
        <span class="anchor-text">Home</span>
    </a>
    <a class="about-anchor" data-class="about-anchor" href="#">
        <span class="icons-wrapper">
            <i class="icon-normal-state"></i>
            <i class="icon-active-state"></i>
        </span>
        <span class="anchor-text">About</span>
    </a>
    <a class="work-anchor" data-class="work-anchor" href="#">
        <span class="icons-wrapper">
            <i class="icon-normal-state"></i>
            <i class="icon-active-state"></i>
        </span>
        <span class="anchor-text">Work</span>
    </a>
    <a class="shop-anchor" data-class="shop-anchor" href="#">
        <span class="icons-wrapper">
            <i class="icon-normal-state"></i>
            <i class="icon-active-state"></i>
        </span>
        <span class="anchor-text">Shop</span>
    </a>
    <a class="services-anchor" data-class="services-anchor" href="#">
        <span class="icons-wrapper">
            <i class="icon-normal-state"></i>
            <i class="icon-active-state"></i>
        </span>
        <span class="anchor-text">Services</span>
    </a>
    <a class="contact-anchor" data-class="contact-anchor" href="#">
        <span class="icons-wrapper">
            <i class="icon-normal-state"></i>
            <i class="icon-active-state"></i>
        </span>
        <span class="anchor-text">Contact</span>
    </a>
</nav>

/* JavaScript Markup */

var anchors = $(this.cluster_navigation_class).children();
var anchor = (jQuery.inArray(data, anchors) == -1) ? anchors[0] : jQuery.inArray(data, anchors);

其中this.cluster_navigation_class.navigationdata.about-anchor。当我签入控制台时,上面的JavaScript语句总是返回-1,为什么会发生这种情况?因为类存在于索引1中,所以它不应该返回索引1吗?还是我错了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-23 19:45:01

您使用的inArray是错误的。您正在将字符串与元素列表进行比较。jQuery不能神奇地知道你想要做什么。

你有没有意识到你在你的帖子里反驳了自己。一个地方你说检查数据,下一个地方你说检查类。数据和类只是重复的,所以我不确定使用它们有什么问题。

您应该使用find来选择导航元素内部的元素。

代码语言:javascript
复制
var myLink = jQuery(".navigation").find('[data-class="about-anchor"]');

使用filter的另一种方式:

代码语言:javascript
复制
var links = jQuery(".navigation a");
var activeElem = links.filter( function(){ return jQuery(this).data()==="about-anchor"; } ); 
var myLink = activeElem.length===1 ? activeElem : links.eq(0);

或者和班级一起

代码语言:javascript
复制
var links = jQuery(".navigation a");
var activeElem = links.filter(".about-anchor");
var myLink = activeElem.length===1 ? activeElem : links.eq(0);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10719121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档