Javascript 如何使用jQuery获得没有标记的直接文本

Javascript 如何使用jQuery获得没有标记的直接文本,javascript,jquery,Javascript,Jquery,我遇到了一个问题,我想用jQuery选择(并替换)一个没有标记的文本字符串。我需要检索“us-east1-mp2大厅”,但它只选择带有跨度的文本 我的代码: 函数fixServerLocation(){ setTimeout(函数(){ if($(“.admin.chatLog”).find(“.section”).length>0){ var section=($(“.admin.chatLog”).find(“.section”); 如果(节的类型!==“未定义”){ var chatMe

我遇到了一个问题,我想用jQuery选择(并替换)一个没有标记的文本字符串。我需要检索“us-east1-mp2大厅”,但它只选择带有跨度的文本

我的代码:

函数fixServerLocation(){
setTimeout(函数(){
if($(“.admin.chatLog”).find(“.section”).length>0){
var section=($(“.admin.chatLog”).find(“.section”);
如果(节的类型!==“未定义”){
var chatMessages=document.querySelectorAll(“[id^='chatMessage']”);
if(聊天信息的类型!==“未定义”){
$('.section[id^=“chatMessage”]').children('div.details').children().css({
“颜色”:“红色”,
“边框”:“2倍纯红”
});;
//我当前必须选择无标签文本的代码。样式只是为了突出显示它。
}
}
}
fixServerLocation();
}, 70);
}
fixServerLocation()

+
2020-04-04 11:07us-east1-mp2大堂
命令时间:
试验

如果使用jquery,可以通过使用javascript
字符串轻松实现。替换方法:

const detailsHtml = $('.details').html()
const replacedContent = detailsHtml.replace('us-east1-mp2 lobby', 'Newark lobby')

$('.details').html(replacedContent)
想法是什么:由于此文本不在标记内,因此需要将整个div html作为字符串,并执行替换。第一行以字符串形式返回
.details
的html内容

然后执行replace并使用相同的
.html(value)
方法设置新内容

检查小提琴:

constdetailshtml=$('.details').html()
const replacedContent=detailsHtml.replace('us-east1-mp2大厅','Newark大厅')
$('.details').html(替换内容)
//console.log(replacedContent)

+
2020-04-04 11:07us-east1-mp2大堂
命令时间:
试验

如果您的文本是文本属性的一部分,这是非常危险的

注意:因为我在重写HTML时删除了事件处理程序,所以您需要委托按钮:

$(“#someStaticContainerForTheChatMessages”)。在(“单击”,“按钮.展开”,函数(){按钮的作用是什么})上

$(函数(){
const$chatMessage=$(“[id^='chatMessage']”);
如果($chatMessages.length>0){
$chatMessages.每个(函数(i,消息){
$('div.details',message.children().addClass(“突出显示”)
message.innerHTML=message.innerHTML.replace(“us-east1-mp2大厅”、“纽瓦克大厅”)
})
}
})
。突出显示{
颜色:红色;
边框:2倍纯红;
}

+
2020-04-04 11:07us-east1-mp2游说司令时间:
试验

如果您在此处发布之前搜索,您可以轻松找到所需内容,thanks@Dexygen我还没有找到关于这个实例的任何东西,这就是我为什么要问的原因。我给了你一个片段。请编辑和添加节和聊天日志。他们不是HTMLHey的一部分,谢谢你的回答。不过我有点麻烦。这段代码可以很好地替换大厅名称,但它也会使[+]按钮变得无用。点击它(或其他任何东西,就这一点而言)没有任何作用。为什么会这样?如何修复?再次感谢您的回答。因为我在重写HTML时删除了事件处理程序。您需要委派按钮:
$(“#someStaticContainerForTheChatMessages”)。在(“单击”,“按钮.展开”,函数(){按钮所做的一切})
上,我可能有问题。这段代码是为我正在开发的一个chrome扩展而编写的,它可以对网站进行样式和修改。(beta.tanktrouble.com)我无法访问他们的任何代码。如果可能,如何在不删除事件处理程序的情况下完成?再次感谢您可以保存它并再次添加它我可以这样做吗?