まず、この質問をどのように行うのかについてはあまりよく分かりません。JavaScriptの式ではなく、値を保存してください
var buttons = publishedWork.getElementsByTagName('button');
と私は各ボタンをクリックすることにより、◼およびその逆する▶から、その内容を変更することです:私は要素の配列を持っています。事は、私は、私がそれをするつもりどのように多くのボタンの合計になりますかわからないということであるために:
var currentButton;
for (var i = buttons.length; i;) {
buttons[--i].onclick = function() {
if (currentButton === buttons[i]) {
currentButton.textContent = '▶';
currentButton = null;
} else {
currentButton = buttons[i];
currentButton.textContent = '◼';
}
}
}
しかし、このコードがないことで、それに関係なく、私はいつも、それをクリックしてどのようなボタン最初のボタンの内容を変更します。これは、buttons[i]
という式がcurrentButton
に格納されているものであり、ボタン自体への参照ではありません。
だから私の質問は次のとおりです。
が、これは、クロージャ(私は把握し始めているトピック)によって解決する場合であるか、別の解決策はありますか?
私は通常これを尋ねませんが、オプションのjQuery、または「純粋な」JSでしたいですか? – mrlee
最初のボタンは視覚的にリストの最後のボタンです。だから、あなたは参照管理が貧弱です。また、* n *ボタンでは、リスト内の最初のボタン(最後のボタンは視覚的)でない限り、currentButtonは常に反復的に(そして壊れて)設定されます。 –