我正在尝试编写一个简单的脚本,它将div除以div并将该div的文本更改为"售罄"。但是,.text
正在返回[Object, Object]
而不是"已售完"。如果有人能告诉我我做错了什么,我将非常感激。提前谢谢。
致以最诚挚的问候,乔治
$(function Store(){
Status = "Sold out";
$("div").each(function(){
$(this).contents().not($(this).children()).text(Status);
alert($(this).contents().not($(this).children()).text(Status));
});
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="Wallet">
<div class="Price">
10.00$
</div>
<div class="Price">
20.00$
</div>
<div class="Price">
30.00$
</div>
</div>
&#13;
答案 0 :(得分:3)
当您向.text()
提供参数时,它不会返回文本,而是设置文本。它返回jQuery对象,以便可以链接该方法。
如果要显示文本,请忽略参数。
$(function Store(){
Status = "Sold out";
$("div").each(function(){
$(this).contents().not($(this).children()).text(Status);
alert($(this).contents().not($(this).children()).text());
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="Wallet">
<div class="Price">
10.00$
</div>
<div class="Price">
20.00$
</div>
<div class="Price">
30.00$
</div>
</div>
&#13;
但这并不是警告Sold out
。我认为这是因为.text(Status)
无法设置文本节点的文本。如果可以,您应重新设计HTML,以便在<div>
或<span>
放置Sold out
消息,而不是使用.contents()
来访问文本节点。< / p>