我认为这是一个相当容易的问题,但我只是一个初学者而且我正在努力为自己解决这个问题,我似乎无法在谷歌找到答案。
我有一个标题标签,我需要使用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>
答案 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";
}