Jquery选择器-此vs id vs类

Jquery选择器-此vs id vs类,jquery,html,jquery-selectors,this,Jquery,Html,Jquery Selectors,This,我有一个外部div,当我将鼠标悬停在它上面时,我希望第二个子元素在jquery中切换一个类。我相信我的代码已经很接近了,我认为我的问题在于我选择了什么,没有得到正确的选择器,因为我不完全理解id、class或这两者之间的区别。谢谢你的帮助!(我不能将它们全部分配给一个类,因为同一代码中会有多个块) 功能颜色切换(id){ 选择=$(this)+“img:n个子项(2)”; $(选择)。切换类别(“灰色”); } APV制造 既然您要将这个作为id参数传递给函数,那么您需要$(id) 但是你可

我有一个外部div,当我将鼠标悬停在它上面时,我希望第二个子元素在jquery中切换一个类。我相信我的代码已经很接近了,我认为我的问题在于我选择了什么,没有得到正确的选择器,因为我不完全理解id、class或这两者之间的区别。谢谢你的帮助!(我不能将它们全部分配给一个类,因为同一代码中会有多个块)


功能颜色切换(id){
选择=$(this)+“img:n个子项(2)”;
$(选择)。切换类别(“灰色”);
}
APV制造



既然您要将
这个
作为
id
参数传递给函数,那么您需要
$(id)

但是你可以这样称呼它:

onmouseover="color_toggle($(this))"
只需使用
id.find(“img:eq(2)”).toggleClass(“gray”)

或者你可以这样做:

onmouseover="color_toggle.call(this);"
还有你的JS:

function color_toggle() {
    $(this).find("img:eq(2)").toggleClass("gray");
}
或者您可以使用CSS:

.someclass:hover img:nth-child(2) {
    /* apply style here */
}

由于您要将
作为
id
参数传递给函数,因此需要
$(id)

但是你可以这样称呼它:

onmouseover="color_toggle($(this))"
只需使用
id.find(“img:eq(2)”).toggleClass(“gray”)

或者你可以这样做:

onmouseover="color_toggle.call(this);"
还有你的JS:

function color_toggle() {
    $(this).find("img:eq(2)").toggleClass("gray");
}
或者您可以使用CSS:

.someclass:hover img:nth-child(2) {
    /* apply style here */
}
有几件事:

(1) 将ID属性添加到


注:

你应该打印/记忆。单击下一章六次,您将循环浏览所有页面。

一些内容:

(1) 将ID属性添加到


注:


你应该打印/记忆。单击下一章六次,您将循环浏览所有页面。

我刚刚更新了一个答案,请检查此处的更新

所以我会解释一下,什么时候使用它。 这就像指向某物一样

  • 你不能指着不存在的东西。或者只是出去
  • 它必须在那里,否则你就做错了。
我什么时候使用
这个

我将在这里介绍基本情况(因此这不是完整的答案)。
在元素上应用函数时使用

假设我隐藏了一个元素

$(this).find('img:eq(2)').attr('id');  // <-- But the ID attr has to EXIST
为什么要用它,让我们再用一次身份证?! 在上一个例子中,它可以工作,但看看这个例子

<script type="text/javascript">
    $(document).ready(function() {
        $('.row-fluid').hover(
            function() {
                hovIn($(this));
            }, 
            function() {
                hovOut($(this));
            }
        );

        function hovIn($this){
            //$this.css({'background':'wheat'});
            var myId = $this.find('img:eq(2)').attr('id');
            color_toggle( myId );
        }
        function hovOut($this){
            //$this.css({'background':'white'});
            var myId = $this.find('img:eq(2)').attr('id');
            color_toggle( myId );
        }
        function color_toggle(id) {
            $('#'+id).toggleClass("grey");
        }

    }); //END document.ready
</script>
  • me
$.each($('.someone'),function(){ $('.someone')//这将再次选择所有3个元素 $(this)//将获取我们正在循环的当前元素 //如果我这样做 console.log($(this.text())//这将记录我,然后你,然后他 })

深入了解
这个
,谷歌主题或阅读一些书籍:)。

我刚刚更新了一个答案,请检查这里的更新

所以我会解释一下,什么时候使用它。 这就像指向某物一样

  • 你不能指着不存在的东西。或者只是出去
  • 它必须在那里,否则你就做错了。
我什么时候使用
这个

我将在这里介绍基本情况(因此这不是完整的答案)。
在元素上应用函数时使用

假设我隐藏了一个元素

$(this).find('img:eq(2)').attr('id');  // <-- But the ID attr has to EXIST
为什么要用它,让我们再用一次身份证?! 在上一个例子中,它可以工作,但看看这个例子

<script type="text/javascript">
    $(document).ready(function() {
        $('.row-fluid').hover(
            function() {
                hovIn($(this));
            }, 
            function() {
                hovOut($(this));
            }
        );

        function hovIn($this){
            //$this.css({'background':'wheat'});
            var myId = $this.find('img:eq(2)').attr('id');
            color_toggle( myId );
        }
        function hovOut($this){
            //$this.css({'background':'white'});
            var myId = $this.find('img:eq(2)').attr('id');
            color_toggle( myId );
        }
        function color_toggle(id) {
            $('#'+id).toggleClass("grey");
        }

    }); //END document.ready
</script>
  • me
$.each($('.someone'),function(){ $('.someone')//这将再次选择所有3个元素 $(this)//将获取我们正在循环的当前元素 //如果我这样做 console.log($(this.text())//这将记录我,然后你,然后他 })

深入挖掘
这个
,谷歌主题或阅读一些书:)。

这很好地涵盖了它。我要补充的是,
id
对于参数来说可能是个坏名字,因为传入的不是悬停元素的
id
,而是表示元素本身的对象。您可以将其称为
target
,或
div
,或
hovered\u item
。这很好地涵盖了它。我要补充的是,
id
对于参数来说可能是个坏名字,因为传入的不是悬停元素的
id
,而是表示元素本身的对象。您可以将其称为
target
,或
div
,或
悬停项