【问题标题】:jquery get elements by class namejquery通过类名获取元素
【发布时间】:2015-06-15 16:29:57
【问题描述】:

我正在使用 Jquery 获取具有类“x”的元素列表。

html:

<p class="x">Some content</p>
<p class="x">Some content#2</p>

如果我们使用 Jquery 来获取这两个 html 元素并用它做一些事情——我们使用类似的东西:

$(".x").text("更改的文本");

这将更改两个段落的文本。从 $(".x") - 我们如何添加一个数组 - 下标符号,就像我们可以使用 getElementsByclassName 一样,如下所示:

document.getElementsByClassName("x")[0].innerHTML

我试过这个 $(".x")[0].text("asasa")- 它不起作用会在 javascript 控制台中给出类型错误。我也尝试在这里获取 API -http://jsfiddle.net/probosckie/jnz825mp/ - 它不起作用

错误是 Uncaught TypeError: $(...).get(...).text is not a function 以下解决方案均无效!

【问题讨论】:

    标签: html arrays parsing getelementsbyclassname


    【解决方案1】:

    您可以使用get() 方法访问数组中的元素,例如:

    $(".x").get(index).textContent = "changed text";
    

    更多信息:https://api.jquery.com/jquery.get/

    为了获取 HTML (innerHTML),您调用 .html() 函数:

    // This is equal to document.getElementsByClassName("x")[0].innerHTML
    $(".x").get(0).innerHTML;
    

    如果您想设置 HTML,那么只需在函数调用中提供您的 HTML 代码,例如 .html('&lt;h1&gt;Hello, World!&lt;/h1&gt;')

    编辑.get() 返回 DOM 对象,而不是 jQuery 包装的元素。因此.text().html() 不起作用。除非你把它包起来。

    更多选项:

    $(".x").get(0).innerHTML;
    $($(".x").get(0)).html();
    $(".x:first").html();
    

    【讨论】:

    • 你意识到如果你有 1000 个 .x 它将填充 jQuery 对象中的 1000 个项目(过滤之前)
    • 确实如此。在这种情况下,最好使用另一种方法对其进行优化。也许使用document.querySelector('.x'),它只返回一个元素(第一个)。如果您愿意,也可以将其包装在 jQuery 中。
    • 未捕获的类型错误:$(...).get(...).text 不是函数
    • 我进行了编辑。 .get() 不返回 jQuery 元素,而是返回普通的 DOM 元素。因此,您不能在其上调用 jQuery 特定的函数。
    • 太棒了。谢谢。知道了。知道如何从 jquery 数组中获取特定元素吗??
    【解决方案2】:

    你可以这样做:

    $('.x:eq(0)').text('changed text');
    

    或:

    $('.x').eq(1).text('bbb');
    

    两者都很好

    对不起我之前的回答..

    【讨论】:

    • 这不起作用。我在 chrome 中尝试过,它在控制台中出现错误。
    • @Prabhas 你可以试试这个
    【解决方案3】:

    解决方案$(".x").get(index)... 将首先匹配所有 .x(这是糟糕的性能)。 然后它会过滤

    如果您有 1000 个.x,它将在 jQuery 对象中填充 1000 个项目(过滤前)

    但是

    $(".x:first").text("changed text"); 会做得更好,因为它不会产生所有 .x 然后 filter ,但会在第一步完成(不填充 1000 个项目)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-16
      • 2020-08-04
      • 2012-01-22
      • 2017-04-03
      • 1970-01-01
      • 2019-06-11
      相关资源
      最近更新 更多