Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 单击链接更改div中的内容_Javascript_Jquery - Fatal编程技术网

Javascript 单击链接更改div中的内容

Javascript 单击链接更改div中的内容,javascript,jquery,Javascript,Jquery,我一直在努力使答案适应我自己的实践项目。建立一个简历网站,在那里我想能够显示三个不同的投资组合的基础上点击一个超链接 我的改编是。HTML: 我已经更改了类和数据id名称,所以我可以使它适合我一直在构建的布局的其余部分。我之所以创建buttons变量,是因为文档的其余部分有更多的超链接 需要做的是:当您单击链接“portfolio1”时,需要显示类为“portfolio1”的div,并且需要隐藏其他两个投资组合。我只是不太明白我现在做错了什么 提前谢谢 jQuery中没有attribute()方

我一直在努力使答案适应我自己的实践项目。建立一个简历网站,在那里我想能够显示三个不同的投资组合的基础上点击一个超链接

我的改编是。HTML:

我已经更改了类和数据id名称,所以我可以使它适合我一直在构建的布局的其余部分。我之所以创建buttons变量,是因为文档的其余部分有更多的超链接

需要做的是:当您单击链接“portfolio1”时,需要显示类为“portfolio1”的div,并且需要隐藏其他两个投资组合。我只是不太明白我现在做错了什么


提前谢谢

jQuery中没有
attribute()
方法,请使用
attr()
data()
方法获取
data-*
属性值

var id = $(this).attr("data-id"); 
// or
var id = $(this).data("id"); 

还有一个bug,
$(“buttons”)
会尝试选择名为
buttons
的标记元素,因此不会选择任何内容。要使其工作,请使用缓存的jQuery对象更新选择器

$(document).ready(function() {
    var $buttons = $("#menu-picker a");
    $buttons.click(function() {
       var id = $(this).attribute("data-id"); 
       $("#pages div").hide();
       $(".portfolio" + id).show();
    });
});
$(文档).ready(函数(){
var$按钮=$(“#菜单选择器a”);
$按钮。单击(函数(){
var id=$(this.attr(“数据id”);
$(“#pages div”).hide();
$(“.portfolio”+id.show();
});
});

一,。Lorem ipsum dolor sit amet,是一位杰出的领导者。埃尼安·康莫多·利古拉·埃吉特·多洛。埃尼安·马萨。在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯。Donec quam felis、ultricies nec、pellentesque eu、,
普雷蒂姆·奎斯,扫描电镜。这是一个很好的例子。Donec pede justo

二,。Lorem ipsum dolor sit amet,是一位杰出的领导者。埃尼安·康莫多·利古拉·埃吉特·多洛。埃尼安·马萨。在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯。Donec quam felis、ultricies nec、pellentesque eu、, 普雷蒂姆·奎斯,扫描电镜。这是一个很好的例子。Donec pede justo

三,。Lorem ipsum dolor sit amet,是一位杰出的领导者。埃尼安·康莫多·利古拉·埃吉特·多洛。埃尼安·马萨。在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯。Donec quam felis、ultricies nec、pellentesque eu、, 普雷蒂姆·奎斯,扫描电镜。这是一个很好的例子。Donec pede justo


jQuery中没有
attribute()
方法,请使用
attr()
data()
方法获取
data-*
属性值

var id = $(this).attr("data-id"); 
// or
var id = $(this).data("id"); 

还有一个bug,
$(“buttons”)
会尝试选择名为
buttons
的标记元素,因此不会选择任何内容。要使其工作,请使用缓存的jQuery对象更新选择器

$(document).ready(function() {
    var $buttons = $("#menu-picker a");
    $buttons.click(function() {
       var id = $(this).attribute("data-id"); 
       $("#pages div").hide();
       $(".portfolio" + id).show();
    });
});
$(文档).ready(函数(){
var$按钮=$(“#菜单选择器a”);
$按钮。单击(函数(){
var id=$(this.attr(“数据id”);
$(“#pages div”).hide();
$(“.portfolio”+id.show();
});
});

一,。Lorem ipsum dolor sit amet,是一位杰出的领导者。埃尼安·康莫多·利古拉·埃吉特·多洛。埃尼安·马萨。在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯。Donec quam felis、ultricies nec、pellentesque eu、,
普雷蒂姆·奎斯,扫描电镜。这是一个很好的例子。Donec pede justo

二,。Lorem ipsum dolor sit amet,是一位杰出的领导者。埃尼安·康莫多·利古拉·埃吉特·多洛。埃尼安·马萨。在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯。Donec quam felis、ultricies nec、pellentesque eu、, 普雷蒂姆·奎斯,扫描电镜。这是一个很好的例子。Donec pede justo

三,。Lorem ipsum dolor sit amet,是一位杰出的领导者。埃尼安·康莫多·利古拉·埃吉特·多洛。埃尼安·马萨。在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯。Donec quam felis、ultricies nec、pellentesque eu、, 普雷蒂姆·奎斯,扫描电镜。这是一个很好的例子。Donec pede justo

有两个问题

首先,当您指变量时,调用
$('buttons')
,因此
$(buttons)

其次,正如其他地方所指出的,jQuery没有方法
attribute()
。这将在错误控制台中显示为错误。它所拥有的是
attr()

您还可以简化/优化代码,尤其是利用

事件现在绑定到一个元素,而不是多个元素,并且该事件的触发器在运行时进行计算。(由于本问题范围之外的其他原因,这是良好的一般做法。)

有两个问题

首先,当您指变量时,调用
$('buttons')
,因此
$(buttons)

其次,正如其他地方所指出的,jQuery没有方法
attribute()
。这将在错误控制台中显示为错误。它所拥有的是
attr()

您还可以简化/优化代码,尤其是利用


事件现在绑定到一个元素,而不是多个元素,并且该事件的触发器在运行时进行计算。(这是很好的一般做法,因为其他原因超出了这个问题的范围。)

使用jqueryuse的attr()方法jQueryTank的attr()方法,我明白!您更新的解决方案还为我解决了第二个问题:如何在加载文档时将显示的第一个公文包id设置为默认值,同时隐藏其他公文包id。@kneijenhuijs:
$(“#菜单选择器a”).first().click()
我了解CSS如何隐藏第二个和第三个元素。但是在clickhandler之后添加
.first()。单击
,对我来说似乎很神奇。如何显示第一个div元素
$('#menu-picker').on('click', 'a', function() {
    $(".portfolio"+$(this).data('id')).show().siblings('.portfolio').hide();
});