我希望此代码仅在最后一个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>
有人碰巧知道什么是错的吗?
答案 0 :(得分:1)
在div中寻找.blue,在语义上等同于
$("#Div5").find(".blue").text("Hello");
你想:
$("#Div5.blue").text("Hello");
......相当于:
if ($("#Div5").hasClass("blue")) {
$("#Div5").text("Hello");
}
答案 1 :(得分:0)
也许是这样?
$("#Div5").text("Hello");
答案 2 :(得分:0)
上下文用于指定容器元素。在您的示例中,您将在上下文中引用与选择器相同的元素。
您可以简化为:
$("#Div5").text("Hello");
或者,如果您仍想明确指定类:
$("#Div5.blue").text("Hello");
两者都会有相同的结果。
答案 3 :(得分:0)
在这种情况下,您无法使用上下文(即容器)。你应该像这样定位你的元素:
$("#Div5.blue");
答案 4 :(得分:0)
您只需要
$(document).ready(function() {
$("#Div5").text("Hello");
});
您尝试做的是在标签内找到标有blue
的标签,ID为“Div5”。由于没有嵌套的div,因此无效。
答案 5 :(得分:0)
这不是一个上下文选择器,因为它们都是你的html中的相同元素
$(".blue", "#Div5")
表示选择#div5
子项的.blue项所以那个html就是
<div id="div5">
<div class="blue"></div>
</div>
你只需要$('#div5')。text('text');
答案 6 :(得分:0)
我认为context参数必须是一个jQuery对象,或者至少是一个HTMLDOMElement(或者他们被称为的任何东西。:P)
jQuery(document).ready(function(){
var $contextElement = jQuery("#Div5");
jQuery(".blue", $contextElement).text("Hello");
});
但是,从你的标记来看,我会说你根本不想使用上下文,而只是选择器,就像这样:
jQuery("#Div5").text("woop woop!");
您甚至不需要定位blue
类,因为ID是唯一的。实际上,即使你有两个ID为Div5
的元素,jQuery也只返回一个,第一个。