多くのDOM要素.each
のプロパティを変更するためにループを作成(または使用)しようとしています。style:display
私の最初の考えはgetElementsByName
、私が名前を付けたすべての要素を選択するために使用することでしたptext1
:
<p id="ptext0"name="ptext">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p id="ptext1"name="ptext1">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p id="ptext2"name="ptext1">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p id="ptext3"name="ptext1">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p id="ptext4"name="ptext1">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p id="ptext5"name="ptext1">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p id="ptext6"name="ptext1">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
使用して
var TextElements = document.getElementsByName("ptext1");
名前を持つすべての要素のオブジェクト/配列を作成するにはptext1
しかし、そのメソッドを正しく機能させることができなかったので、.each
.
両方
$.each(TextElements, function (index) {
this.style.display="none";
});
と
$('td[name=ptext1]').each(function (index) {
this.style.display="block";
});
正常に動作していないようです (アラートを使用して動作するかどうかをテストしています)。
誰かが私の間違いを見つけたり、より良い方法を提案したりできるなら、私はすべて耳を傾けます. これは単純な操作である必要がありますが、何らかの理由で試行するたびに失敗します。
編集: .
hide() を除いて機能して$('p[name=ptext1]').hide()
おり$('p[name=ptext1]').show()
、非表示にしたい行の上の行も非表示にします。
<p id="ptext0"name="ptext">Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</p>
各行には異なる id タグがありますが、名前タグを使用して非表示にする行を追跡しようとしていますが、残す必要がある行 (name="ptext") も非表示になります。