我正在尝试创建一个循环(或使用.each
)来更改style:display
许多 DOM 元素的属性。我最初的想法是用来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";
});
似乎无法正常工作(我一直在测试它是否使用警报运行)。
现在,如果有人能看到我的错误在哪里或提出更好的方法,我会全神贯注。这应该是一个简单的操作,但由于某种原因,我每次尝试都会失败。
编辑:
$('p[name=ptext1]').hide()
并且$('p[name=ptext1]').show()
正在工作,除了 .hide() 还隐藏了我想隐藏的行上方,
<p id="ptext0"name="ptext">Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</p>
每行都有一个不同的 id 标签,但我试图使用名称标签来跟踪我想隐藏哪些,但应该保留的行 (name="ptext") 也会隐藏。