我想更改文本,或者从数据库中列出的项目列表中删除一个字母,我尝试了其他简单的jQuery方法,但似乎没有一个起作用。
我尝试了jQuery .find()、. children()、. text()、. html()。
if(requiredVisits == 1){
$(`.upcoming-item${i + 1} `).find('.how-earned').text('EARNED FROM 1 VISIT')
}
$('#upcoming-rewards').append(`
<item class="upcoming-reward-item upcoming-item${i + 1} available">
<span>
<p style="line-height: 16px" class="reward-item reward${i + 1}">${reward}</p>
<span id="how-earned" class="how-earned">EARNED FROM ${requiredVisits} VISITS</span>
</span>
</item>
`)
我也尝试只是console.log写入的文本,但得到的结果是“未定义”或空白。因此,也许我没有正确到达所需的跨度。任何帮助将是巨大的! :)
预期结果将是“从1次访问获得”而不是“从1次访问获得”
答案 0 :(得分:1)
一种选择是最初使用适当的语言而不是尝试更新它...
var visitsText = (requiredVisits === 1) ? 'VISIT' : 'VISITS';
$('#upcoming-rewards').append(`
<item class="upcoming-reward-item upcoming-item${i + 1} available">
<span>
<p style="line-height: 16px" class="reward-item reward${i + 1}">${reward}</p>
<span id="how-earned" class="how-earned">EARNED FROM ${requiredVisits} ${visitsText}</span>
</span>
</item>
`)
答案 1 :(得分:1)
您似乎尝试在实际创建元素之前更改其文本。尝试移动
if(requiredVisits == 1){
$(`.upcoming-item${i + 1} `).find('.how-earned').text('EARNED FROM 1 VISIT')
}
.append()操作之后。
答案 2 :(得分:1)
修复您的html代。如果可能的话,请勿尝试在事后进行修复。
$('#upcoming-rewards').append(`
<item class="upcoming-reward-item upcoming-item${i + 1} available">
<span>
<p style="line-height: 16px" class="reward-item reward${i + 1}">${reward}</p>
<span id="how-earned" class="how-earned">EARNED FROM ${requiredVisits} VISIT${requiredVisits > 1 ? 'S' : ''}</span>
</span>
</item>
`);