jQuery - .text返回[Object Object]而不是变量。

时间:2017-03-23 00:39:51

标签: javascript jquery text

我正在尝试编写一个简单的脚本,它将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;
&#13;
&#13;

1 个答案:

答案 0 :(得分:3)

当您向.text()提供参数时,它不会返回文本,而是设置文本。它返回jQuery对象,以便可以链接该方法。

如果要显示文本,请忽略参数。

&#13;
&#13;
$(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;
&#13;
&#13;

但这并不是警告Sold out。我认为这是因为.text(Status)无法设置文本节点的文本。如果可以,您应重新设计HTML,以便在<div><span>放置Sold out消息,而不是使用.contents()来访问文本节点。< / p>