出于某种原因,Javascript replace('search', 'replace')
函数适用于某些HTML实体字符串作为搜索词,但其他函数则不符合我的预期。这些不一致是非常有问题的,我甚至无法解决它的工作方式问题。我怎样才能保证这些实体搜索词总能找到完整的纯文字?我需要替换以‐
在此示例中的方式工作:
$(document).ready(function(){
$('#good').html($('#good').html().replace($('#good').data('text'), 'FOUND'));
$('#okay').html($('#okay').html().replace($('#okay').data('text'), 'FOUND'));
$('#bad').html($('#bad').html().replace($('#bad').data('text'), 'FOUND'));
$('#wrong').html($('#wrong').html().replace($('#wrong').data('text'), 'FOUND'));
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="good" data-text="find">
1: find
</div>
<div id="okay" data-text="‐">
2: ‐
</div>
<div id="bad" data-text=">">
3: >
</div>
<div id="wrong" data-text="&">
4: &
</div>
答案 0 :(得分:1)
使用.text()
代替.html()
,正如@vlaz建议的那样。我使用.text()
运行了这个示例,它工作正常:
$(document).ready(function(){
$('#good').text($('#good').text().replace($('#good').data('text'), 'FOUND'));
$('#okay').text($('#okay').text().replace($('#okay').data('text'), 'FOUND'));
$('#bad').text($('#bad').text().replace($('#bad').data('text'), 'FOUND'));
$('#wrong').text($('#wrong').text().replace($('#wrong').data('text'), 'FOUND'));
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="good" data-text="find">
1: find
</div>
<div id="okay" data-text="‐">
2: ‐
</div>
<div id="bad" data-text=">">
3: >
</div>
<div id="wrong" data-text="&">
4: &
</div>
&#13;