操作表单元素的文本内容用value;而innerHTML与innerText操作非表单元素的内容或文本内容
- innerHTML:获取双闭合标签里面的html内容,并且要识别标签。
- innerText:获取双闭合标签里面的文本内容,不会识别html标签。
- value是表单元素的特有属性,非表单元素没有value属性,如div,span等。
- value在不同表单元素里有不同的意义,如button为按钮中的文本,input(text)为默认文本,textarea为默认文本。
- valueOf是js对象的方法,如
var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];
var v=fruits.valueOf();
结果是:Banana,Orange,Apple,Mango
【例子1:】
<div id="box1" value="test1">
我是box1
<div id="box2" value="test2">我是box2</div>
</div>
<script>
console.log(document.getElementById('box1').innerHTML); /* 我是box1 <div id="box2" value="test2">我是box2</div> */
console.log(document.getElementById('box1').innerText); /* 我是box1 我是box2 */
console.log(document.getElementById('box1').value); /* undefined */
console.log(document.getElementById('box1').valueOf());
// <div id="box1" value="test1">
// "
// 我是box1
// "
// <div id="box2" value="test2">我是box2</div>
// </div>
</script>
【例子2:】
<form action="" id="text2">
<input type="text" id="text1" value="test3">
</form>
<script>
/* 表单元素 input:*/
console.log(document.getElementById('text1').innerHTML); /* 空 */
console.log(document.getElementById('text1').innerText); /* 空 */
console.log(document.getElementById('text1').value); /* test3 */
console.log(document.getElementById('text1').valueOf()); /* <input type="text" id="text1" value="test3"> */
/* form:*/
console.log(document.getElementById('text2').innerHTML); /* <input type="text" id="text1" value="test..."> */
console.log(document.getElementById('text2').innerText); /* 空 */
console.log(document.getElementById('text2').value); /* undefined */
console.log(document.getElementById('text2').valueOf());
/* <form action="" id="text2">
* <input type="text" id="text1" value="test...">
* </form>
* */
【例子3:计算器】
<input type="text" id="a">
<span id="sp"></span>
<input type="text" id="b">
<span>=</span>
<input type="text" id="sum"><br/>
<button id="btn1" onclick="calculate('+')">+</button>
<button id="btn2" onclick="calculate('-')">-</button>
<button id="btn3" onclick="calculate('*')">*</button>
<button id="btn4" onclick="calculate('/')">/</button><br/>
<script>
var t1=document.getElementById("a");
var t2=document.getElementById("b");
function calculate(op) {
var n1=+(t1.value);
var n2=+(t2.value);
var sum=0;
switch (op) {
case '+':
sum=n1+n2;
break;
case '-':
sum=n1-n2;
break;
case '*':
sum=n1*n2;
break;
case '/':
sum=n1/n2;
if (n2==0){sum='INF';}
break;
}
document.getElementById('sp').innerText=op;
document.getElementById('sum').value=sum;
}
</script>