试图替换(),但没有成功
Trying to .replace() Without Success
我有一些像这样的HTML代码行:
<li><a href="#" class="lstItem">Testing jQuery [First Bracket]</a></li>
<li><a href="#" class="lstItem">Loving jQuery [Second one]</a></li>
我正在尝试将括号内的内容替换为没有onLoad
的内容,如下所示:
var item = $(".lstItem").text();
var match = item.match(/'[(.*?)']/);
item = item.replace(match[0], "");
但是什么都没有改变。出了什么问题,如何纠正?
在使用jimbojw的建议后,我在这一行得到了Uncaught ReferenceError: text is not defined
:
oldtext = $item.text,
item
是一个包含字符串的变量,而不是指向文本的指针。如果你想改变文本,你必须重新设置它,相对于$(".listItem").text(item)
编辑-预测下一个问题
下一个问题是所有的文本都被设置为相同的东西。所以你真正想要做的可能是这样的:
$(".lstItem")
.each(function(index, item) {
var
$item = $(item),
oldtext = $item.text(),
match = oldtext.match(/'[(.*?)']/),
newtext = oldtext.replace(match[0], '');
$item.text(newtext);
});
这会帮你完成任务:
你把代码分成了太多的行,而且你需要对每个单独的元素分别运行replace。
$(".lstItem").each(function() {
$(this).html(
$(this).html().replace(/'[(.*)']/, "")
);
});
参见jsFiddle中的示例:http://jsfiddle.net/eKn3Q/7/
与jimbojw的答案一起,$(".lstItem").text()
将检索<a/>
元素中的所有文本。处理此问题的一种方法是将function(i,t){}
传递给.text()
方法。
$(".lstItem").text(function(i, text){
var match = text.match(/'[(.*?)']/);
return text.replace(match[0], "");
});
jsfiddle的简单示例
你的正则表达式也可以更简单。
var item = $(".lstItem").text();
var match = /'[(.*?)']/;
$(".listItem").text(item.replace(match,""));
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 我如何找到一个句子中的所有空格并替换忽略它们
- 尽管链接成功并已成功下载,但未找到NPM模块
- 如何用更合适的内容替换document.write
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 用空格替换下划线PHP
- str.split(someString).join(someOtherString)是否等效于替换
- 在另一个函数成功结束后调用该函数
- 在ajax成功后,cluetip不适用于首次点击活动元素
- 使用javascript的图像替换循环
- AJAX/JS/PHP:如何替换发送到PHP文件的文件中的文本,并传递成功属性
- 在表单提交将DOM的一部分替换为分部之后,我应该将ajax成功绑定到什么来使我的javascript工作
- 为什么我'我无法替换AJAX成功响应中的HTML内容
- 将ajax错误和成功函数替换为传递给父函数的替代函数
- 在提交后用成功消息替换HTML表单,表单使用单独的php文件发送邮件
- 在成功加载和错误处理后替换AJAX
- Javascript Ajax成功图像替换
- 试图替换(),但没有成功
- 如何将按钮替换为加载gif图像当单击提交按钮,然后在成功删除表单上,并替换为成功消息时