getElementById然后计算长度

时间:2013-01-23 11:34:02

标签: javascript getelementbyid

我认为这是一个相当容易的问题,但我只是一个初学者而且我正在努力为自己解决这个问题,我似乎无法在谷歌找到答案。

我有一个标题标签,我需要使用javascript抓取然后计算出长度,然后根据结果编辑字体大小。

为什么我的代码无效?

var titleElement = document.getElementById("myelement");

if(titleElement.length>10){
titleElement.style.fontSize = 16;
}

编辑/添加

即使你提出了添加.innerHTML:

的建议,我也无法让它工作
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body onload="titleLengthShow()">
<h1 id="myelement">dfg adg earsh aaerg eaag erg aergethj5 yetfgg eg d</h1>

<script type="text/javascript">

function titleLengthShow(){
var titleElement = document.getElementById("myelement");

    if(titleElement.innerHTML.length>10){
        titleElement.style.fontSize = 16;
    }

}
</script>
</body>
</html>

3 个答案:

答案 0 :(得分:3)

var titleElement = document.getElementById("myelement");

if(titleElement.innerHTML.length > 10){
  titleElement.style.fontSize = "16px";
}

应该有效。 innerHTML为您提供包含文本(实际上是html)。

如果您在标题标记内部进行了格式化,那么它也将计算这些格式标记。相反,您可以使用.textContent而不是.innerHTML,尽管这在旧的IE中不起作用。对于较旧的IE版本.innerText应该可以工作。

var length = (titleElement.textContent || titleElement.innerText ||
              title.innerHTML).length;

shoudl适用于常见的浏览器。

答案 1 :(得分:1)

您需要检查titleElement.innerHTML的长度。

我强烈建议调查jQuery来做这些事情。

答案 2 :(得分:1)

更改

if(titleElement.length>10){
titleElement.style.fontSize = 16;
}

if(titleElement.innerHTML.length> 10){
titleElement.style.fontSize = "16px";
}