为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以更改 ap 中特定值的样式?

是否可以更改 ap 中特定值的样式?

慕尼黑8549860 2021-06-01 18:18:26
我有一个带有文本的 ap,该文本在单击按钮时会发生变化,每个按钮根据 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,所以当language == 3 时#text 的字体大小不同,但这当然适用于所有text3。希望我很清楚,感谢您的帮助。我检查了类似的问题,但如果我这样做:else if (language == 3) { document.getElementById('text').innerHTML = text3; document.getElementById('text').style.fontSize = 10px;它改变了所有 text3 的字体大小。
查看完整描述

2 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

由于您正在更改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;

}

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


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


查看完整回答
反对 回复 2021-06-03
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

  var text = document.getElementById('text');


    function changeText(text1, text2, text3, button) {


      // default behaviour

      text.style.color = "red";

      if (language == 1) text.innerHTML = text1;

          else if (language == 2) text.innerHTML = text2;

          else if (language == 3){ 

              text.innerHTML = text3;

              // different behaviour

              if(button == "button1")

                  text.style.color = "green";

          }

      else text.innerHTML = "Don't think about this";

    }

<button onclick="changeText('hello','banana','wow','button1');" id="button1">


<button onclick="changeText('vewewve','vdsvs','dgsag','button2');" id="button2">

每次单击按钮时,此代码都会默认设置您的文本,并且语言不是 3。


查看完整回答
反对 回复 2021-06-03
  • 2 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信