首页 > 解决方案 > 使用 jQuery 替换 HTML 元素内的文本

问题描述

我有一个页面模板,它使用 PHP 从外部网站提取数据,并使用 HTML 呈现页面布局。

某些被拉取的数据无法在源头进行更改。所以我需要在实际网站上更改它,因为它是渲染的。

我需要更改的数据本质上是一个“状态”。并且编码如下:

<span id="property-status"><?php echo $property['status']; ?></span>

来自源的状态分为三种类型,它们是:

已售出、已关闭和处于活动状态

我需要将 SOLD 和 CLOSED 更改为 FUNDED。

问题是当开发人员无法最终更改它时,我如何使用 jQuery 来实现这一点。

标签: javascriptjquery

解决方案


如果是一个字符串。尝试使用正则表达式/\>(.*?)\</gmiString.replace()函数

var obj ={'sold':'found','closed':'found'};

var a ='<span id="property-status">CLOSED</span>';

var res = a.replace(/\>(.*?)\</gmi,((a,b)=> '>'+obj[b.toLowerCase()]+'<'));
console.log(res)

或使用 html trim()删除不需要的空间

var obj ={'sold':'found','closed':'found'};
 $('#property-status').text(obj[$('#property-status').text().trim().toLowerCase()])
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span id="property-status">sold </span>


推荐阅读