Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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 id搜索仅适用于第一个元素_Javascript_Jquery - Fatal编程技术网

Javascript id搜索仅适用于第一个元素

Javascript id搜索仅适用于第一个元素,javascript,jquery,Javascript,Jquery,我有一个街区: <div class="col-1-4 local_links"> <table> <tr> <td> <a href="#user_profile">User Profile</a><div class="arrow-selected"></div> <

我有一个街区:

<div class="col-1-4 local_links">
<table>
            <tr>
                <td>
                    <a href="#user_profile">User Profile</a><div class="arrow-selected"></div>
                </td>
            </tr>
            <tr>
                <td>
                    <a href="#dashboard">Dashboard</a>                  </td>
            </tr>
            <tr>
                <td>
                    <a href="#change_password">Change Password</a> 
                </td>
            </tr>
        </table>
 </div>

[…一些代码….]

<div class="col-3-4 local_responses">
   <div class="content full" id="user_profile" style="display: block;">
     <h2>settings :: User Profile</h2>
   </div>
   <div class="content full" id="dashboard">
     <h2>settings :: Dashboard</h2>
   </div>
   <div class="content full" id="change_password">
     <h2>settings :: Change Password</h2>
   </div>
</div>

设置::用户配置文件
设置::仪表板
设置::更改密码
下面是一些js:

var local_links = $(".local_links");
var local_responses = $(".local_responses");

$(("a"),local_links).on("click", function(e){
    e.preventDefault();
    var id = $(this).attr("href");
    local_links.find("div.arrow-selected").remove();
    $(this).parent().append('<div class="arrow-selected"></div>');
    $(".content", local_responses).animate({opacity: 0});
    $(id, local_responses).animate({opacity: 1});
});
var local_links=$(“.local_links”);
var local_responses=$(“.local_responses”);
$((“a”),本地链接。在(“单击”)上,函数(e){
e、 预防默认值();
var id=$(this.attr(“href”);
local_links.find(“div.arrow-selected”).remove();
$(this.parent().append(“”);
$(“.content”,本地_响应)。动画({opacity:0});
$(id,局部_响应)。设置动画({opacity:1});
});

如果我执行console.log(id)。。。它很好地显示了ID。。。但它只适用于第一个元素。我知道我错过了一些琐碎的事情。有什么想法吗

我很确定jQuery的所有功能都正常运行,但是只设置
不透明度
的动画并不会神奇地将
显示
样式从
更改为
或任何元素的值。我很确定您为
.content
设置了一个样式,使
显示:无。为不透明度设置动画时,对于div,其
显示保持为
,第一个除外,因为默认情况下,它被
覆盖。是否有任何原因导致您正在设置
不透明度的动画,而没有使用类似
fadeIn()
fadeOut

此外,由于您正在
href
中存储
id
,因此无需执行类似
$(id,本地\u响应)
…只需使用
$(id)
。看看这个:

var local_links=$(“.local_links”);
var local_responses=$(“.local_responses”);
$(本地链接)。在(“单击”,“a”,函数(e){
e、 预防默认值();
var id=$(this.attr(“href”);
local_links.find(“div.arrow-selected”).remove();
$(this.parent().append(“”);
$(“.content”,本地_响应)。淡出(400);
$(id).delay(400).fadeIn(400);
});

需要注意的是,我更改了
绑定上的
,因为这样,它不会为找到的每个
创建一个事件处理程序-它会为
本地链接中的每个项目创建一个事件处理程序,但只会对选择器
“a”
执行,我不确定您到底在寻找什么行为,但是,将您的代码原封不动地发布到,我似乎可以让它在所有三个链接中都保持一致

我不知道你为什么要用括号把下面的
“a”
括起来:

$(("a"),local_links).on("click", function(e){ //...
这同样适用于:

$("a", local_links).on("click", function(e){ // ...
但他们也没有伤害任何东西


那么这把小提琴会重复你的问题吗?如果不是,则问题出在您发布的内容以外的代码中。

ID在页面中必须是唯一的,请改用类。您确定不是指
local\u links.on(“单击”,“a”,函数(){})?在您的代码中,元素在何处具有类“local_links”?您的代码示例没有显示任何锚定标记,很难进行注释。@AmoghTalpallikar有,它们在表中。请显示生成的HTML,而不是模板语言(无论您在
{HTML::link('#dashboard',dashboard')}
语法中使用什么)这在现阶段确实令人困惑。事实上,它确实在JSFIDLE上起作用。我将再次检查我的代码。是的,您可以使代码“正确”运行,但这是因为您没有将
显示的默认样式
设置为
。内容
,这在原始问题中没有指定,但可以假定。在这种情况下,使用
opacity
不会改变
显示的任何内容
@Ian:是的,这是很有可能的。只是不清楚遗漏了什么。我假设Jacek可以使用类似的东西来帮助找出缺少的东西…它确实可以与fadeIn/out一起工作。谢谢你,伊恩!我实际上没有意识到不透明度:0不会设置显示:无。这就成功了。@Jacekminiak Yep,3种完全不同的元素显示样式-
显示
可见性
不透明度
。但这三个都是完全不同的,而且是不相关的
$("a", local_links).on("click", function(e){ // ...