带有上下文的jQuery选择器不工作

带有上下文的jQuery选择器不工作,jquery,selector,Jquery,Selector,我希望这段代码只会更改最后一个div Div5中的文本,但它不会: <script type="text/javascript" language="javascript"> $(document).ready(function() { $(".blue", "#Div5").text("Hello"); }); </script> <form id="form1" runat="server"> <div>

我希望这段代码只会更改最后一个div Div5中的文本,但它不会:

<script type="text/javascript" language="javascript">
    $(document).ready(function() {
        $(".blue", "#Div5").text("Hello");
    });
</script>

<form id="form1" runat="server">
<div>

    <div id="Div1" class="blue">AAAA</div>
    <div id="Div2" class="yellow">BBBB</div>
    <div id="Div3" class="blue">CCCC</div>
    <div id="Div4" class="yellow">DDDD</div>
    <div id="Div5" class="blue">EEEE</div>

</div>
</form>

有人知道怎么回事吗?

这是在div中查找.blue,在语义上等同于

$("#Div5").find(".blue").text("Hello");
你想要:

$("#Div5.blue").text("Hello");
…相当于:

if ($("#Div5").hasClass("blue")) {
    $("#Div5").text("Hello");
}

这是在div中查找.blue,在语义上等同于

$("#Div5").find(".blue").text("Hello");
你想要:

$("#Div5.blue").text("Hello");
…相当于:

if ($("#Div5").hasClass("blue")) {
    $("#Div5").text("Hello");
}
也许是吧

$("#Div5").text("Hello");
也许是吧

$("#Div5").text("Hello");

上下文用于指定容器元素。在您的示例中,您正在上下文中引用与选择器相同的元素

您可以简化为:

$("#Div5").text("Hello");
或者,如果仍要显式指定类:

$("#Div5.blue").text("Hello");

两者的结果相同。

上下文用于指定容器元素。在您的示例中,您正在上下文中引用与选择器相同的元素

您可以简化为:

$("#Div5").text("Hello");
或者,如果仍要显式指定类:

$("#Div5.blue").text("Hello");

两者的结果相同。

在本例中,不能使用上下文即容器。你应该像这样瞄准你的元素:

$("#Div5.blue");

在这种情况下,不能使用上下文,即容器。你应该像这样瞄准你的元素:

$("#Div5.blue");
你只需要

$(document).ready(function() {
    $("#Div5").text("Hello");
});
您试图做的是在id为“Div5”的标记中找到一个类为blue的标记。因为没有嵌套的div,所以无法工作。

您只需要

$(document).ready(function() {
    $("#Div5").text("Hello");
});

您试图做的是在id为“Div5”的标记中找到一个类为blue的标记。因为没有嵌套的div,所以无法使用。

这不是上下文选择器,因为它们在html中都是相同的元素

 $(".blue", "#Div5")
表示选择div5子项的.blue项

因此,它的html是

<div id="div5">
<div class="blue"></div>
</div>

您只需要$'div5.text'text'

这不是上下文选择器,因为它们在html中都是相同的元素

 $(".blue", "#Div5")
表示选择div5子项的.blue项

因此,它的html是

<div id="div5">
<div class="blue"></div>
</div>

您只需要$'div5.text'text'

我认为上下文参数必须是一个jQuery对象,或者至少是一个HtmlDomeElement,或者任何它们被称为的东西:P

jQuery(document).ready(function(){
    var $contextElement = jQuery("#Div5");
    jQuery(".blue", $contextElement).text("Hello");
});
不过,从您的标记来看,我想说您根本不想使用上下文,只想使用选择器,如下所示:

jQuery("#Div5").text("woop woop!");

您甚至不需要以blueclass为目标,因为ID是唯一的。事实上,即使您有两个ID为Div5的元素,jQuery也只会返回一个,第一个。

我认为上下文参数必须是jQuery对象,或者至少是一个HtmlDomeElement或任何它们被调用的对象。:P

jQuery(document).ready(function(){
    var $contextElement = jQuery("#Div5");
    jQuery(".blue", $contextElement).text("Hello");
});
不过,从您的标记来看,我想说您根本不想使用上下文,只想使用选择器,如下所示:

jQuery("#Div5").text("woop woop!");

您甚至不需要以blueclass为目标,因为ID是唯一的。事实上,即使有两个ID为Div5的元素,jQuery也只返回一个,第一个。

非常感谢。我是jQuery的初学者,非常感谢。我是jQuery的初学者。