javascript - 拆分后替换Vue中的DOM元素
问题描述
这是我在 vue 中的数组:
data: {
my_list: [
{ "text": "Whoever is Silent. He is Saved", "emphasizes": "Silent, Saved", "link": "website" },
{ "text": "If you don't value yourself, who will", "emphasizes": "value, self", "link": "twitter" },
],
}
这是我的html
<li v-for="texts in my_list">
{{ texts.text}} ({{ texts.emphasizes }}) {{ texts.link }}
</li>
我想在与一些HTML{{ texts.text }}
一起拆分时替换匹配的文本{{ texts.emphasizes }}
解决方案
您需要v-html
用于显示和使用methods
来替换。
var app = new Vue({
el:'#app',
data: {
my_list: [
{ "text": "Whoever is Silent. He is Saved", "emphasizes": "Silent, Saved", "link": "website" },
{ "text": "If you don't value yourself, who will", "emphasizes": "value, self", "link": "twitter" },
],
},
methods:{
replaceText: function(str,replaceText){
var replaceArr = replaceText.split(',');
for(let i in replaceArr){
str = str.split(replaceArr[i].trim()).join('<strong>'+replaceArr[i].trim()+'</strong>');
}
return str;
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.js"></script>
<div id="app">
<ul>
<li v-for="texts in my_list">
<span v-html="replaceText(texts.text,texts.emphasizes)"></span> ({{ texts.emphasizes }}) {{ texts.link }}
</li>
</ul>
</div>
推荐阅读
- ios - UICollectionView 特定单元格带在 oder 单元格前面
- python - 如何根据概率从列表中选择项目
- css - 如何从网站中提取画布动画创建者/触发器功能?
- c# - 使用 CollectionChanged 更改 ComboBox 项目源和更新通知
- asp.net - 如何在 Aspx 页面中使用 C# 代码在 Input 元素中添加值?
- python-3.x - Selenium 隐式和显式等待不起作用/没有效果
- python - 从数据库列创建行
- python-3.x - python 3.7中的拆分函数和整数
- vba - 添加重复工作表名称时出现 combobox1_keydown 错误
- reactjs - 找不到模块:无法解析 'F:\React\react-complete-guide\src\Component' 中的 '../axios'