如何使用NodeList修改CSS?

时间:2018-01-27 18:59:42

标签: javascript html css

我只是在学习JS / CSS。

这是我正在玩的网站。 http://keysoft.keydesign-themes.com/demo1/

我想使用JavaScript将“.pricing .pricing-row”样式的“text-align”属性更改为“left”。

当我在Chrome控制台(样式)中将其更改为“text-align:left”时,我看到它将行对齐到左侧但保持按钮居中。这就是我想要的。

我在控制台中试过:document.querySelectorAll('.pricing.pricing-row')但我无法理解如何从那里选择textAlign属性。它显示了一个NodeList。

我也试过了document.getElementsByClassName('pricing-row'),但有div.pricing-row.button-container等元素。

这些元素是不必要的,因为如果我在循环中使用它们,那么按钮的对齐将受到影响。 所以我的目标是只对齐“定价行”而不影响按钮或其他部分的对齐。

你能告诉我最有效的方法来完成这项任务吗?

1 个答案:

答案 0 :(得分:-1)

我不确定如何在纯JS中执行此操作,但可以使用jQuery。

基本上你的问题是,拥有“price-row”类的21个div中的一些也有其他类,你不想选择那些。实际上,这可以帮助你排除它们。

首先关闭 - 为了在webdev控制台中使用jQuery,请执行以下操作:

$===jQuery // should prompt true

现在:

$("div[class='pricing-row'")

将仅选择具有此特定类的div。然后你可以随心所欲地做任何事情。在你的情况下:

$("div[class='pricing-row'").css('text-align', 'left');

另一个对于no非常有用的选项是jQuery not()方法:

$(".pricing-low).not('.button-container .selector').css('text-align', 'left');

这里发生的是首先选择具有“price-low”类的所有元素,然后not()方法删除具有以下额外类的元素。最后,css操作起作用。