【问题标题】:Text-transform doesn't work when I try to get the value [duplicate]当我尝试获取值时,文本转换不起作用[重复]
【发布时间】:2017-10-30 19:30:15
【问题描述】:

我有一个带有“文本转换:大写;”的文本框它工作正常,但是当我试图获得它的价值时,它并没有改变。例如,我在“test”中写入,它在文本框中显示“Test”,但是当我执行“console.log(”document.getElementById(“search”).value“)”时,它显示“test”。
我该如何解决这个问题?

这是我的代码:

HTML:

<input type="text" id="search"/>
<button type="submit" onclick="query()">Submit</button>
<div class="query-div"><p class="query-p">Test-a</p></div>
<div class="query-div"><p class="query-p">Test-b</p></div>
<div class="query-div"><p class="query-p">Test-ba</p></div>

Javascript:

function query() {
var x = document.querySelectorAll(".query-p");
var y = document.getElementById("search");
var i;
        for(i = 0; i < x.length; i++) {
        if(x[i].innerHTML.includes(y.value)) {x[i].style.display = 'block';} else {x[i].style.display = 'none';}
             console.log(x[i].innerHTML);
    }
}

【问题讨论】:

  • CSS 只影响值的显示方式;它们的真实值,即您使用 JavaScript 检索的值,不受影响。这是预期的行为。
  • 试试toUpperCase() ?
  • 这对我有帮助,谢谢。

标签: javascript html css


【解决方案1】:

您可以在第一个字符上使用 string.toUpperCase()。

function query() {
  var x = document.querySelectorAll(".query-p");
  var y = document.getElementById("search");
  var i;
  for(i = 0; i < x.length; i++) {
    if(x[i].innerHTML.includes(y.value)) {
      x[i].style.display = 'block';
    } else {
      x[i].style.display = 'none';
    }
    var text = x[i].innerHTML
    console.log(text[0].toUpperCase() + text.slice(1));
  }
}
<input type="text" id="search"/>
<button type="submit" onclick="query()">Submit</button>
<div class="query-div"><p class="query-p">Test-a</p></div>
<div class="query-div"><p class="query-p">Test-b</p></div>
<div class="query-div"><p class="query-p">Test-ba</p></div>

【讨论】:

  • toUpperCase()text-transform: capitalize 的输出不同。
  • 我只需要将每个单词的首字母大写。
  • 抱歉,已修复; text[0].toUpperCase() + text.slice(1)
  • 处理单词大写的另一种更快的方法是使用正则表达式,如下所示:str.replace(/^\w|\s\w/g, t =&gt; t.toUpperCase())。这也将处理多词输入,而不仅仅是一个词。所以在这种情况下,var text = x[i].innerHTML.replace(/^\w|\s\w/g, t =&gt; t.toUpperCase())
猜你喜欢
  • 1970-01-01
  • 2022-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-29
  • 1970-01-01
相关资源
最近更新 更多