javascript - 是否可以更改 p 中特定值的样式?

标签 javascript html css

我有一个 p,其中的文本在单击按钮时会发生变化,每个按钮根据 var 的值显示不同的文本,我希望这些文本之一具有不同的字体大小。

var language = " "; /* this var changes when another function fires, don't mind this, just know that the var changes and the possible values are 1,2,3 */

function changeText(text1, text2, text3) {
  if (language == 1) {
    document.getElementById('text').innerHTML = text1;
  } else if (language == 2) {
    document.getElementById('text').innerHTML = text2;
  } else if (language == 3) {
    document.getElementById('text').innerHTML = text3;
  } else {
    document.getElementById('text').innerHTML = "Don't think about this";
  }
}
/*yeah, I should be more DRY and not repeat document.getElementById('text') all over*/

button.addEventListener('click', () => changeText('whales', 'snails', 'this is the specific text that needs a different font-size'));
button2.addEventListener('click', () => changeText('bees', 'trees', 'this text3 is ok with the actual font-size'));
#text {
  font-size: 14px;
}
<p id='text'> dinamic text is in here </p>

我希望特定的 text3 具有不同的字体大小,而不是所有的 text3。我修改了函数changeText,因此当语言== 3时,#text的字体大小不同,但这当然适用于所有text3。希望我说得清楚,感谢您的帮助。

我检查了类似的问题,但如果我这样做:

else if (language == 3) {
 document.getElementById('text').innerHTML = text3;
 document.getElementById('text').style.fontSize = 10px;

它更改所有文本的字体大小。

最佳答案

由于您正在更改innerHTML(与innerText相反),因此您可以在文本中添加html标签。例如:

JS

button.addEventListener('click', () => changeText('whales', 'snails', '<small>this is the specific text that needs a different font-size</small>'));
button2.addEventListener('click', () => changeText('bees', 'trees', 'this text3 is ok with the actual font-size'));

CSS

#text>small {
  font-size: 10px;
}

由于您在单击不同的按钮时调用相同的函数,因此它们将具有相同的行为。因此,如果您想以编程方式执行此操作,则需要添加新函数或使用奇怪的逻辑使已经庞大的函数变得过于复杂。

出现的真正问题是:为什么你想要这种行为?

关于javascript - 是否可以更改 p 中特定值的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56177051/

相关文章:

javascript - 使用循环构建对象数组

javascript - jQuery 选择器存储在变量 : How to Select specific elements by attribute value? 中

html - Angular 5 - 使用 InnerHtml 绑定(bind)组件选择器

javascript - 创建等高线图

css - 内联 block 中的换行文本溢出父 <pre> 标记

javascript - 如果字段不为空,如何从引导模式更新输入字段?

javascript - 无法理解为什么函数不断在 d3.js 上被调用

html - CSS,两个ID的相同LI规则

html - 有没有办法让 HTML5 视频上的控件始终显示在 IE 上?

CSS:如何缩小容器中的第一个 div 而不是离开容器