Javascript 如何根据条件替换多个div中的文本?

Javascript 如何根据条件替换多个div中的文本?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我需要替换多个div的文本,其中根据每个div的文本,放置一个或另一个文本 示例:如果文本为0,则将其替换为“无配额”,如果文本与0不同,则将其替换为“是” Html代码: <div><p id="text">1</p></div> <div><p id="text">0</p></div> <div><p id="text">1</p></div>

我需要替换多个div的文本,其中根据每个div的文本,放置一个或另一个文本

示例:如果文本为0,则将其替换为“无配额”,如果文本与0不同,则将其替换为“是”

Html代码:

 <div><p id="text">1</p></div>
 <div><p id="text">0</p></div>
 <div><p id="text">1</p></div>
但仅更改第一个元素,其余元素保留相同的文本。
因为我可以更改每个项目的文本?来自智利的问候语。

您有多个相同id的实例。每个id都必须是唯一的-这就是为什么它只影响第一项的原因。将id更改为类,您将能够将每个p更改为新文本。还发现了最后一个else文本中的一个打字错误(在下面的代码中已更正)

1

0

1

$('.text')。每个(函数(){ 如果($(this).text()=='0') { $(此).text('无配额'); } 其他的 { $(this.text('Yes it have'); } });
ID将用作唯一标识号,因此仅更改第一项。将ID更改为CLASS应该可以解决这个问题。

有两个问题

首先,正如其他人所指出的,如果要匹配多个元素,应该使用类而不是ID

其次,当您将函数参数赋给
.text()
时,它将接收旧文本作为参数,并应返回新文本,而不是在其中调用
.html()
。因此,它应该是:

$('.text').text(函数(i,oldtext){
return oldtext='0'?'No quota':'Yes it have';
});

1

0


1

ha@Ethan-Doh-已经发布了-刚刚在你前面到达:))错过了一分钟。非常感谢,问题解决了。来自智利的问候。非常感谢您的及时回复,在您的帮助下,我成功地解决了这个小问题哈哈。来自智利的问候。为什么您从一个调用更改为
.text()
,改为使用
.each()
?@Barmar-我更改了它,因为原始调用是$('#text')。text(…这是问题的一部分-因为手头的问题是每个中都有“text”的id。因此,当我更改时,使其具有“text”-我还更改了对该类的调用,以迭代每个,并正确使用$(this)。也许它可以被保留,但我更希望能够看到作用域$(this)所指的是什么。你是对的,他没有将函数参数用于
.text()
正确。我已经写了一个答案,说明如何正确操作。
    $('#text').text(function(){
        if($(this).text() == '0')
        {
            $(this).text('No quota');
        }
        else
        {
            $(this).text('"Yes it has');
        }
    });
 <div><p class="text">1</p></div>
 <div><p class="text">0</p></div>
 <div><p class="text">1</p></div>

$('.text').each(function(){
    if($(this).text() == '0')
    {
        $(this).text('No quota');
    }
    else
    {
        $(this).text('Yes it has');
    }
});