<!Doctype html>
<html lang="en>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>控制p属性</title>
<script>
var changeStyle = function(elem, attr, value) {
elem.style[attr] = value
};
window.onload = function() {
var oBtn = document.getElementsByTagName("input");
var op = document.getElementById("p1");
var oAtt = ["width", "height", "background", "display", "display"];
var oVal = ["200px", "200px", "red", "none", "block"];
for (var i = 0; i < oBtn.length; i++) {
oBtn[i].index = i;
oBtn[i].onclick = function() {
this.index == oBtn.length - 1 && (op.style.cssText = "");
changeStyle(op, oAtt[this.index], oVal[this.index])
}
}
};
</script>
</head>
<body>
<p id="outer">
<input type="button" value="变宽" />
<input type="button" value="变高" />
<input type="button" value="变色" />
<input type="button" value="隐藏" />
<input type="button" value="重置" />
<p id="p1"></p>
</p>
</body>
</html>
1. Pourquoi avons-nous besoin d’opérations logiques ?
2.Quelle est la relation entre this.index et op.style.cssText ? Pouvez-vous l'expliquer brièvement ?
Cette phrase signifie : Si le bouton cliqué est "Réinitialiser", alors définissez la valeur
p1
元素的cssText
清空。也就是重置了p1
元素的初始状态(没有style
).&&
运算是从左向右执行的,只有当左边表达式为真时,才执行右边的表达式。在这里既当this.index == oBtn.length - 1
,也就是点击的是最后一个按钮时,执行op.style.cssText = ""
.Ce type d'écriture ne vaut pas la peine d'être promu. Il a une mauvaise lisibilité et n'est pas une bonne façon d'écrire. La façon normale de l'écrire est :
this.index
就是保存了按钮的序号,用于判断点击的是哪个按钮。在这里不能直接用i
pour exprimer qu'il s'agit d'une faille célèbre de JavaScript.signifie : si c'est le dernier bouton, exécutez le code suivant
(op.style.cssText = "")
, c'est-à-dire effacez le styleéquivaut à
if(a==b){code....}
Personnellement, je n’aime pas cette façon d’écrire.
this.index est le numéro de série du bouton
op.style.cssText = ""
signifie effacer le style opérationnel.