想要点击一下操作一些文字:
$('.Jserep').change(function () {
$(".Jappended").text().replace("<serep>Y</serep>", 'serep>N</serep>')
});
但它不起作用。 .text()是否返回一个我可以使用替换的本地字符串对象?
答案 0 :(得分:4)
$(".Jappended").text($(".Jappended").text().replace("<serep>Y</serep>", 'serep>N</serep>'))
将结果分配给文本
答案 1 :(得分:1)
你正在做什么不起作用的原因是你没有在任何地方使用结果。 replace
会返回新字符串并完成替换。你正在做的是等同于:
var str = "hi there";
str.replace("hi", "bye");
...它可以完成工作,但不会将其存储在任何地方。你需要
var str = "hi there";
str = str.replace("hi", "bye");
请注意我们如何使用replace
的返回值。
因此假设$(".Jappended")
仅匹配单个元素:
var elm = $(".Jappended");
elm.text(elm.text().replace("<serep>Y</serep>", 'serep>N</serep>'));
答案 2 :(得分:0)
您应该收到一个原生字符串。
.text()方法的结果是包含组合的字符串 所有匹配元素的文本。
示例:强>
var text = $("#test").text();
alert(typeof text); //outputs string
答案 3 :(得分:0)
根据Api:是的。 http://api.jquery.com/text/ “获取匹配元素集合中每个元素的组合文本内容,包括它们的后代,或者设置匹配元素的文本内容。” 但是根据你的代码,你收到字符串,做替换,但永远不要在任何地方插入字符串。结果只是垃圾收集。
答案 4 :(得分:0)
我认为你想要的是:
$('.Jserep').change(function () {
var newText = $(".Jappended").text().replace("<serep>Y</serep>", 'serep>N</serep>');
$(".Jappended").text(newText);
});
或更简单:
$('.Jserep').change(function () {
var el = $(".Jappended");
el.text(el[0].replace("<serep>Y</serep>", 'serep>N</serep>'));
});
甚至更简单
$(".Jappended").text(function() {return this.innerTextreplace("<serep>Y</serep>", 'serep>N</serep>')});
答案 5 :(得分:0)
$('.Jserep').change(function () {
$(".Jappended").text($(".Jappended").text().replace("<serep>Y</serep>", 'serep>N</serep>'));
});
答案 6 :(得分:0)
你也可以这样做:
$(".Jappended").text(function (i,n){return n.replace("<serep>Y</serep>", 'serep>N</serep>');});
使用此重载:
无需打开新变量,也无需再次调用text()
等。
使用已经提供的API
答案 7 :(得分:0)
正如您所说,点击文字您想要更改文字,但是为什么要使用
$('.Jserep').change(
应该是.click()事件权利。正如@billyonecan告诉你可以使用替换它。
希望这能回答你的问题