gpt4 book ai didi

javascript - 文本替换 javascript jquery

转载 作者:行者123 更新时间:2023-11-28 08:20:54 25 4
gpt4 key购买 nike

首先大家好,很抱歉我的英语。
我仍然会利用这个社区的专业知识和可用性。
昨天我看到一篇关于字符串替换的帖子(this)。
为了简单起见,我们删除表格并尝试查看以下代码

<div id="find">
<div>(this match)</div>
<div>(this match)</div>
<div>some text1
<div></div>
<div>(this match)</div>
<div>some text2</div>
<div>some text3</div>
</div>
</div>

在这种情况下,如果我们想要查找包含单词“match”的项目并将该单词替换为“其他文本”字符串,我们可以使用我通过阅读有关此主题的其他帖子找到的代码片段之一

$(document).ready(function(){
var elements = $('div');
for(var i = 0; i < elements.length; i++) {
var current = elements[i];
if(current.children.length === 0) {
var x=current.textContent
if (x.indexOf('match') > 0) {current.textContent='some other text'}
}
}
})

$(document).ready(function(){
$("#find div:contains('match'):not(:has(*))").each(function () {
var str=$(this).text('some other text')
})
})

$(document).ready(function(){
$("div").each(function(){
var str=''
var div = $(this).clone();
div.find("*").remove();
str=div.text();
if (str.indexOf('match') > 0) {
$(this).text('some other text')
}
})
})

<小时/>但是,如果您以这种方式编辑 html,则所有片段都是错误的

<div id="find">(this match)
<div>(this match)
<div>(this match)</div>
</div>
<div>(this match)<div>aaaa</div></div>
<div>some text1
<div></div>
<div>(this match)</div>
<div>some text2</div>
<div>some text3</div>
</div>
</div>

我已经找到了解决这个问题的方法,但我认为它不优雅且过于冗长

$(document).ready(function(){
var len =$('#find div').length
for(i=1;i<len;i++){
$('div:eq('+i+')').contents().addClass('passed').filter(function () {
return $(this).text()==='(this match)' && $.trim(this.nodeValue).length
}).replaceWith('some other text');
}
for(i=0;i<len;i++){
var classx=$('div:eq('+i+')').attr('class')
if(classx===undefined){
var xx=$('div:eq('+i+')').contents()[0].nodeValue
if (xx.indexOf('match') > 0) {
$('div:eq('+i+')').contents()[0].nodeValue='some other text'
}
}
}
})

请问有人可以指导我以更有效、更优雅的方式来实现相同的结果吗?
一如既往,提前感谢大家,我们将非常欢迎任何建议。

最佳答案

我想你想要的是here 。如果我明白你想要做什么,第一个片段的更“优雅”的方式可能是:

$(document).ready(function(){
$('#find div').each(function () {
$(this).html($(this).html().replace('match', 'some other text'));
});
});

至于第二个,这似乎有效(作为警告,它也适用于第一个片段):

function findAllText (idToStartWith) {
$('#' + idToStartWith).html($('#' + idToStartWith).html().replace('match', 'some other text'));
while ($('#' + idToStartWith).text().indexOf('match') > 0) {
$('#' + idToStartWith).find('*').each(function () {
$(this).html($(this).html().replace('match', 'some other text'));
});
}
}

关于javascript - 文本替换 javascript jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22988347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com