Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以JS脚本中Id的所有实例为目标添加类_Javascript_Css - Fatal编程技术网

Javascript 以JS脚本中Id的所有实例为目标添加类

Javascript 以JS脚本中Id的所有实例为目标添加类,javascript,css,Javascript,Css,我正在使用以下代码- <script>var element = document.getElementById("more"); element.classList.add("wide");</script> var-element=document.getElementById(“更多”); 元素。类列表。添加(“宽”); 它在php if语句中使用。如果wordpress中的帖子完成了一个特定的自定义字段,它会将class.wide应用于id为#more的帖子按

我正在使用以下代码-

<script>var element = document.getElementById("more");
element.classList.add("wide");</script>
var-element=document.getElementById(“更多”);
元素。类列表。添加(“宽”);
它在php if语句中使用。如果wordpress中的帖子完成了一个特定的自定义字段,它会将class.wide应用于id为#more的帖子按钮

问题是,如果页面上有多个id#more的实例(就像我的摘录页面中一样),它只针对第一个实例#more,而不是页面上剩余的post按钮


有没有办法改变上面的代码,使其以“more”的所有ID为目标,或者我可以用任何其他方式标记我想要的按钮,并将代码更改为以它们为目标?

页面上应该只有特定ID的一个实例,因此为什么getElementById只返回一个值。如果您想使用multiple,那么您应该使用一个类,并使用它来定位您想要操作的元素

然后我建议使用jQuery或其他工具来简化选择正确的元素

例如:


//选择。更多元素并添加类范围。
$('.more').addClass('wide');

页面上应该只有一个特定ID的实例,因此为什么getElementById只返回一个值。如果您想使用multiple,那么您应该使用一个类,并使用它来定位您想要操作的元素

然后我建议使用jQuery或其他工具来简化选择正确的元素

例如:


//选择。更多元素并添加类范围。
$('.more').addClass('wide');

页面上应该只有一个特定ID的实例,因此为什么getElementById只返回一个值。如果您想使用multiple,那么您应该使用一个类,并使用它来定位您想要操作的元素

然后我建议使用jQuery或其他工具来简化选择正确的元素

例如:


//选择。更多元素并添加类范围。
$('.more').addClass('wide');

页面上应该只有一个特定ID的实例,因此为什么getElementById只返回一个值。如果您想使用multiple,那么您应该使用一个类,并使用它来定位您想要操作的元素

然后我建议使用jQuery或其他工具来简化选择正确的元素

例如:


//选择。更多元素并添加类范围。
$('.more').addClass('wide');

我想您应该知道,具有相同ID的多个元素是无效的HTML。但是,由于浏览器可以容忍这一点,因此您可以使用querySelectorAll,它在IE8和更高版本的标准模式下工作,几乎所有其他浏览器都可以:

var moreList = document.querySelectorAll('[id=more]');
或者,您可以使用getElementsByTagName(“*”)并循环返回的成员以收集id更大的成员

然后可以在元素上循环并添加类范围:


我想您应该知道,具有相同ID的多个元素是无效的HTML。但是,由于浏览器可以容忍这一点,因此您可以使用querySelectorAll,它在IE8和更高版本的标准模式下工作,几乎所有其他浏览器都可以:

var moreList = document.querySelectorAll('[id=more]');
或者,您可以使用getElementsByTagName(“*”)并循环返回的成员以收集id更大的成员

然后可以在元素上循环并添加类范围:


我想您应该知道,具有相同ID的多个元素是无效的HTML。但是,由于浏览器可以容忍这一点,因此您可以使用querySelectorAll,它在IE8和更高版本的标准模式下工作,几乎所有其他浏览器都可以:

var moreList = document.querySelectorAll('[id=more]');
或者,您可以使用getElementsByTagName(“*”)并循环返回的成员以收集id更大的成员

然后可以在元素上循环并添加类范围:


我想您应该知道,具有相同ID的多个元素是无效的HTML。但是,由于浏览器可以容忍这一点,因此您可以使用querySelectorAll,它在IE8和更高版本的标准模式下工作,几乎所有其他浏览器都可以:

var moreList = document.querySelectorAll('[id=more]');
或者,您可以使用getElementsByTagName(“*”)并循环返回的成员以收集id更大的成员

然后可以在元素上循环并添加类范围:



首先,同一个
id
的实例不应超过一个……完全同意。我使用来自互联网的代码来创建我的摘录。我没有将id作为任何其他目标,因此我会将其取出,但需要首先对其进行排序…首先,您不应该拥有同一
id的多个实例
…完全同意。我使用来自互联网的代码来创建我的摘录。我没有将id作为任何其他目标,因此我会将其取出,但需要首先对其进行排序…首先,您不应该拥有同一
id的多个实例
…完全同意。我使用来自互联网的代码来创建我的摘录。我没有将id作为任何其他目标,因此我会将其取出,但需要首先对其进行排序…首先,您不应该拥有同一
id的多个实例
…完全同意。我使用来自互联网的代码来创建我的摘录。我没有将id作为任何其他目标,因此我会将其取出,但需要首先对其进行排序…我尝试使用您的代码,并将更多的类添加到按钮中,但它不起作用?代码示例使用jQuery,您需要在上面的脚本标记之前的页面上包含它,最简单的方法是使用他们的CDN并将
添加到您的页面。要获得更多帮助,请访问,因为这是在循环中,它会影响页面上的所有元素,而不仅仅是受php if语句影响的元素。有没有办法让它只影响目标类?我已经尝试过使用你的代码,并将类添加到更多的内容中