Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript inArray()始终返回false_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript inArray()始终返回false

Javascript inArray()始终返回false,javascript,jquery,arrays,Javascript,Jquery,Arrays,我不知道如何修复它,但使用inArray()时,我总是得到-1。更明确地说,我是这样做的: <!-- HTML Markup --> <nav class="navigation clearfix"> <a class="home-anchor" data-class="home-anchor" href="#"> <span class="icons-wrapper"> <i class="

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

<!-- 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);

/*JavaScript标记*/
var archors=$(this.cluster_navigation_class).children();
var anchor=(jQuery.inArray(数据,anchors)=-1)?锚[0]:jQuery.inArray(数据,锚);

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

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

你意识到你在你的岗位上控制了自己吗。一个地方你们说的是检查数据,下一个地方你们说的是检查课堂。数据和类只是重复,所以我不确定使用它们中的任何一个会有什么问题

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

var myLink = jQuery(".navigation").find('[data-class="about-anchor"]');
使用过滤器的另一种方法:

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);
还是和班上的同学一起

var links = jQuery(".navigation a");
var activeElem = links.filter(".about-anchor");
var myLink = activeElem.length===1 ? activeElem : links.eq(0);

对不起,“数据”的定义在哪里?它不检查类。它检查对象的值。我该如何检查课程?但我不是在找。我正在寻找一个类(保存在localStorage上)来匹配导航中的一个类。如果找不到,我只返回第一个导航项(在我的例子中是home),这将是登录网站时的索引页。因此,查找数据,更改选择器。因此@epascarello,让我换一种方式说,我如何将该导航的所有子类存储在一个数组中?这样我就可以使用
inArray()
,因为我需要的是那个类,而不是元素。有可能吗?你为什么需要那门课?推理?因为我在其他函数中使用它,所以我粘贴的只是我正在开发的所有代码块的一小部分。但主要原因是,我通过localStorage存储它,并在您返回页面时重用它。