如何使用jQuery选中文本值为1t的class类并将其内容替换为ok?
jQuery代码替换文本失效的问题修正
原代码的两处错误
- 文本判断逻辑不符合预期:
$(this).find(".front").text()会把当前查找范围内所有匹配的.front元素的文本拼接为完整字符串,当前页面共有4个.front元素,拼接后的结果是1t2t3t4t,和你要判断的1t永远不相等,导致if判断块完全不会执行。 - 元素选择范围错误:就算判断逻辑能触发,代码里的
$('.front').text('Ok')是全局选中页面所有.front元素做替换,并不是只修改文本为1t的目标元素,会把所有同类元素的文本全部改掉。
可正常运行的实现代码
完全不需要绕路从.flip-container层级开始查找,直接遍历每一个.front元素逐个判断文本即可:
$(".front").each(function() { // 取当前遍历到的单个元素的文本,去除首尾空白避免隐形字符干扰判断 const currentText = $(this).text().trim(); // 命中目标文本时,仅替换当前元素的内容 if (currentText === "1t") { $(this).text("ok"); } })
如果要保留从.flip-container层级开始查找的写法
需要在当前容器内找到的所有.front元素上做二次遍历,替换时绑定当前元素的上下文,不能使用全局选择器:
$(".flip-container").each(function() { // 在当前flip-container容器内逐个遍历所有front元素 $(this).find(".front").each(function() { const currentText = $(this).text().trim(); if (currentText === "1t") { // 这里的$(this)就是当前命中的单个front元素,不会影响其他同类元素 $(this).text("ok"); } }) })
最终实现效果:页面里文本为
1t的那个.front元素会被替换为ok,其他文本的front元素完全不受影响。
内容的提问来源于stack exchange,提问作者Thanh Tung
相关产品推荐
相关产品推荐

