什么相当于jQuery中的'getElementsByTagName'?

Sha*_*aoz 28 javascript jquery

什么相当于getElementsByTagName()jQuery?我只想在jQuery中创建一个元素集合,这样我就可以迭代它们并对每个项目做一些事情.

非常感谢!

kar*_*m79 40

$("tagnamehere")
Run Code Online (Sandbox Code Playgroud)

所以:

$("div").each(function() {
    // do something exciting with each div
    $(this).css("border", "1px solid red");

    // do something by directly manipulating the wrapped DOM element
    this.style.border = "1px solid red";

    // do something only if this particular div has a class of 'pretty'
    if($(this).hasClass("pretty")) {
        $(this).text("I am the pretty one");
    }
});
Run Code Online (Sandbox Code Playgroud)

要不就:

// apply some css to all div elements
$("div").css("border", "1px solid red");
Run Code Online (Sandbox Code Playgroud)

请记住,当您使用jQuery选择多个元素时,例如$("span"),您在对象上调用的任何方法都将在所有匹配的元素上进行.将其视为"隐式迭代" - 例如,$("span").hide();将隐藏页面上的所有span元素.

看到:

  • @Shaoz:*"那么在集合中的某个特定项目上做些什么呢?"*你可以用`each`循环遍历它们,正如Karim所示,或者你可以通过`[]`表示法直接解决它们:`$ ( 'DIV')[0] .XXX;`这里更多:http://api.jquery.com/get/(你可以用`[]`或`得到()',任何一个;`得到()`有一些额外的功能,但如果你不需要这些功能,你大多数都想要`[]`.)从头到尾通过jQuery API(http://api.jquery.com)阅读它是非常值得的我会更好地理解它,它只需要一个小时左右. (2认同)

Jam*_*man 7

只需使用元素选择器

$('elementname')
Run Code Online (Sandbox Code Playgroud)

例如

$('div')
Run Code Online (Sandbox Code Playgroud)

并进行迭代:

$('div').each(function(){
    var $this = $(this);
    //insert code here
});
Run Code Online (Sandbox Code Playgroud)

但是,您可能不必迭代,因为将为集合中的每个项调用一个调用集合的方法,因此

$('div').hide();
Run Code Online (Sandbox Code Playgroud)

......将隐藏所有div.

  • `$("[富]")`是有属性选择,而不是元素选择. (2认同)
  • @ŠimeVidas - 是的,我使用[]表示占位符,但我意识到这是误导!已经适应了. (2认同)