Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.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
从html链接类创建和使用jQuery变量_Jquery_Html_Class_Variables_Jquery Selectors - Fatal编程技术网

从html链接类创建和使用jQuery变量

从html链接类创建和使用jQuery变量,jquery,html,class,variables,jquery-selectors,Jquery,Html,Class,Variables,Jquery Selectors,只是刚开始使用jQuery,我相信这对于那些了解jQuery的人来说是基本的东西,但我无法让它工作 我有一个非常简单且重复的脚本,我正在尝试简化它,当某些链接悬停时,它会改变背景div的背景颜色。i、 e.每个链接都有一个相关的背景div $('div#navigation a.A').hover(function(){ $('div#bg-nav .A').addClass('bg-active'); },function(){ $('div#bg-nav .A').removeClass('

只是刚开始使用jQuery,我相信这对于那些了解jQuery的人来说是基本的东西,但我无法让它工作

我有一个非常简单且重复的脚本,我正在尝试简化它,当某些链接悬停时,它会改变背景div的背景颜色。i、 e.每个链接都有一个相关的背景div

$('div#navigation a.A').hover(function(){
$('div#bg-nav .A').addClass('bg-active');
},function(){
$('div#bg-nav .A').removeClass('bg-active');
});;

$('div#navigation a.B').hover(function(){
$('div#bg-nav .B').addClass('bg-active');
},function(){
$('div#bg-nav .B').removeClass('bg-active');
});;
对每个链接重复此操作。链接和后台div是由CMS动态创建的,因此每次添加页面时手动更新此脚本并不理想。我不能使用纯CSS,因为链接与页面结构中的div相关

因为有一个明显的模式,背景div与触发器链接具有相同的类,我认为必须可以使用悬停链接的类来影响相关div,将变量传递到选择器上,如下所示,但作为一个新手,我无法让它工作

$(document).ready(function() {
var linkClass = $(this).attr("class");
$("div#navigation a").hover(function() {
$('div#bg-nav.'+ linkClass).addClass('bg-active');
},function(){
$('div#bg-nav.'+ linkClass).removeClass('bg-active');
});;

首先,你需要移动线路

var linkClass=$this.attrclass

在悬停呼叫中。在您的版本$中,这指的是$文档

其次,只有当$'diva'项的第一个或唯一一个类是'a'或'B'类时,这才有效,否则您必须循环使用每个类并找到选择正确类的方法


有关这方面的更多信息,请参见问题。

我认为这应该有效。还可以查看密度21.5的答案以了解详细信息

$('#navigation a').hover(function () {
    $('#bg-nav').find('.'+ $(this).attr('class')).toggleClass('bg-active');
});

如果你发布你的html,它会更有用,但是如果我猜对了,这段代码应该可以工作

$(document).ready(function(){
     var linkclass;
     $('#id_of_link').on('click',function(){
        linkclass = $(this).attr('class');      
     });
     $("div#navigation a").hover(function() {
        $('div#bg-nav.').find(linkclass).addClass('bg-active');
        },function(){
           $('div#bg-nav.').find(linkclass).removeClass('bg-active');
        });
});
如果使用否则请使用.on

您有许多意想不到的;->};;->};我对javascripting非常陌生!。。。并订购了一本书来学习!本以为我能在网上读出来,但失败了!有没有关于如何实现这一目标的建议?是那些意想不到的角色阻止了这一切,还是我偏离了目标一百万英里?非常感谢。html tbh(基本无序导航列表)没有太多内容,其中每个链接都有一个唯一的类,那么我所说的后台div只是文档中其他地方的元素,这些元素具有与链接匹配的类。e、 悬停时,链接a.classA应该会影响div.classA。太棒了-谢谢大家。我知道这比我做的要简单!迫不及待地要等到我自己能做到这一点!