简体   繁体   English

这个jQuery的JavaScript等价于什么?

[英]What's the JavaScript equivalent of this jQuery?

$('. element').css ({
    'transform' : 'translate(blah blah);'
});

I like how this is organized compared to the only way I know how to change css with JavaScript. 与我知道如何使用JavaScript更改CSS的唯一方式相比,我喜欢这种方式的组织方式。

Element.style.color='red';

I'm very new to JavaScript so I've never done much with changing css other than very basic stuff. 我对JavaScript非常陌生,因此除了非常基本的内容外,我从未做过太多更改CSS的工作。 I just want to know how you'd write the above jQuery in vanilla JavaScript 我只想知道您将如何使用普通JavaScript编写上述jQuery

Thank you 谢谢

You can try this: 您可以尝试以下方法:

document.getElementsByClassName('element').style.transform = 'translate(blah blah)';

Or this: 或这个:

document.querySelector(".element").style.transform = "translate(blah blah)";

Try below example for the elements other than the first: 请尝试以下示例,以了解除第一个元素之外的其他元素:

 document.querySelectorAll('.element').forEach(function(event, index){ if(index === 2){ event.style.transform = 'translate(-80%, -80%)'; } }); 
 #wrapper{ position: relative; width: 100%; float: left; height: 100px; } #wrapper .element{ position: absolute; left: 50%; top: 50%; width: 100px; text-align: center; } 
 <div id="wrapper"> <div class="element">First Line</div> <div class="element">Second Line</div> <div class="element">Third Line</div> <div class="element">Fourth Line</div> <div class="element">Fifth Line</div> </div> 

You can use querySelector to select the first item with a class: 您可以使用querySelector选择带有类的第一项:

 document.querySelector(".myClass").style.transform = "rotate(0.5turn)"; 
 <div class="myClass"> Hello </div> 

Other alternative is getElementsByClassName which will return an array of elements. 另一个选择是getElementsByClassName ,它将返回一个元素数组。

尝试这个。

document.getElementById("mainbar").style.transform = "scale(2)"

您可以使用以下方法进行jQuery等效:

Element.style.transform = "translate(amount, amount)";

In javascript the equivalent function, to $(selektor) in jQuery, is document.querySelector(selektor) or document.querySelectorAll(selektor) , it depends of the expected number of elements that you want to refer. 在javascript中,等效于jQuery中$(selektor)函数是document.querySelector(selektor)document.querySelectorAll(selektor) ,它取决于要引用的元素的预期数量。 So Your code can be writen like this: document.querySelector('.element').transform = 'translate(blah, blah)'; 因此,您的代码可以这样写: document.querySelector('.element').transform = 'translate(blah, blah)'; - in case that you want to apply this rule only to the one element with certain class. -如果您只想将此规则应用于具有特定类的一个元素。 If You want to apply this rule to the multiple elements, then you have to use querySelectorAll , ale loop through all the elements. 如果要将此规则应用于多个元素,则必须使用querySelectorAll ,ale遍历所有元素。 So it would look like: var myElements = document.querySelectorAll('.element'); for(var i = 0; i < myElements.length; i++){ myElements[i].style.transform = 'translate(blah, blah)';} 因此它看起来像: var myElements = document.querySelectorAll('.element'); for(var i = 0; i < myElements.length; i++){ myElements[i].style.transform = 'translate(blah, blah)';} var myElements = document.querySelectorAll('.element'); for(var i = 0; i < myElements.length; i++){ myElements[i].style.transform = 'translate(blah, blah)';}

To do the equivalent in Javascript you should probably ensure that it applies to all elements with the classname, just like it would in jQuery. 要在Javascript中执行等效操作,您可能应该确保将其应用于具有类名的所有元素,就像在jQuery中一样。 To do that you will have to loop through all the elements, see the second example below. 为此,您将必须遍历所有元素,请参见下面的第二个示例。

Here are two simple examples which should cover your needs: 这是两个可以满足您需求的简单示例:

// One/first element with classname
let element = document.querySelector('.element');
element.style.color = 'red';

// Multiple elements with same classname
let elements = document.querySelectorAll('.element');
elements.forEach(element => {
  element.style.color = 'red';
  element.style.transform = 'translate(blah blah)';
})

Since you are trying to set the style with class, you can use querySelectorAll() to loop through all the elements to set the transform property on each element individually: 由于您尝试使用类设置样式,因此可以使用querySelectorAll()遍历所有元素以分别设置每个元素的transform属性:

 document.querySelectorAll('.element').forEach(function(el){ el.style.transform = 'translate(10px, 50px)'; }); 
 .element{ width: 80px; height: 40px; background-color: skyblue; } 
 <div class="element">Container</div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM