[英]Change a string using jquery selector and javascript regex
我要做的就是在某个类中将所有s中的字母“ y”替换为字母“ i”。 我不确定为什么我的脚本不起作用。 我知道选择器正在工作,因为我可以将方法交换到诸如hide()之类的方法上并且可以工作。 我还可以将replace()的值分配给一个变量,并且该变量显示正确的替换。 所以我很困惑为什么两者不能结合使用...
<script type="text/javascript" src=".../jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(
function() {
$("span.certain_class").text().replace(/y/g, "i");
}
);
</script>';
编辑:我需要澄清一下,我需要对整个页面的多个范围执行此操作。 请记住,text()方法会堆叠每个跨度的所有文本...因此,这样的操作将不起作用:
$("span.certain_class").text($("span.certain_class").text().replace(...))
每个跨度最终都会导致其他跨度文本混乱不堪。
$(document).ready(function() {
$('span.certain_class').each(function() {
$(this).text($(this).text().replace(/y/ig, function(s) {
return (s === 'Y' ? 'I' : 'i');
}));
});
});
第一行有错字!
<script type="text/javascript" src=".../jquery.min.js"></script>
应该
<script type="text/javascript" src="../jquery.min.js"></script>
或者如果您想直接将其更改为相同的跨度,请使用
$("span.certain_class").text($("span.certain_class").text().replace(/y/g, "i"));
$("span.certain_class").text(
$("span.certain_class").text().replace(/y/g, "i")
);
您的脚本确实将所有的“ y”替换为“ i”,但是没有将值分配回dom元素。
text()
函数仅获取内容。 但是,使用您当前的代码,您不会替换其内容。
var replacement = $("span.certain_class").text().replace(/y/g, "i");
$("span.certain_class").text(replacement);
好吧,您的解决方案有效,但是您什么都不做。 您要替换div中的文本吗? 尝试这个:
$(document).ready(function() {
var elm = $("span.certain_class");
var text = elm.text().replace(/y/g, "i"); // Get current text and replace y to i
elm.text(text); // Set new text
}
);
不带参数调用的text()仅返回元素的内部文本,并且由于字符串在Javascript中是不可变的,因此您对replace()
调用将创建一个立即被忘记的新字符串。
您可以将一个函数传递给text()
,以便从上一个构建新值:
$("span.certain_class").text(function(index, currentText) {
return currentText.replace(/y/g, "i");
});
它应该是:
var replaceSpan = $("span.certain_class")
replaceSpan.text(replaceSpan.text().replace(/y/g, "i"));
您需要将字符串传递给.text()
方法。 您当前要做的只是将span.certain_class
的文本作为字符串( .text()
)进行,执行replace( .replace(..)
),但是随后对所得字符串不做任何操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.