如何通过类名获取元素

发布于 2024-12-21 18:01:13 字数 143 浏览 0 评论 0原文

我想知道是否有一种方法可以实现 getElementByClassName("classname").innerHTML 函数或相当于 getElementById("ClassName").innerHTML 的方法。

I want to know if there is a way to getElementByClassName("classname").innerHTML function or something to the equivalent of getElementById("ClassName").innerHTML.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

故人爱我别走 2024-12-28 18:01:13

您的函数名称中缺少 sgetElementsByTagName 返回一个元素集合,您需要对其进行迭代:

var elements = document.getElementsByClassName("classname");

for (var i = 0; i < elements.length; i++) {
    elements[i].innerHTML = 'foo';
}

IE8 及以下版本不支持 getElementsByClassName,因此您必须找到一个 polyfill 或使用querySelectorAll (IE8)。

You are missing an s in your function name. getElementsByTagName returns a collection of elements, of elements, which you need to iterate over:

var elements = document.getElementsByClassName("classname");

for (var i = 0; i < elements.length; i++) {
    elements[i].innerHTML = 'foo';
}

IE8 and below don't support getElementsByClassName, so you'll have to find a polyfill or use querySelectorAll (IE8).

最舍不得你 2024-12-28 18:01:13

我建议您使用 JQuery,您可以直接使用 CSS 选择器(如 .yourclass)来查找给定类的所有元素:

$('.yourclass').doWhatYouWant();

如果您不想使用 JQuery,您可以使用纯 Javascript:

document.getElementsByClassName('my-fancy-class')

但要小心 IE8 不兼容问题。
作为替代方案(速度较慢,但​​您可以构建更复杂的 CSS 选择器),您可以使用:

document.querySelector('.cssSelector')

Which 将返回响应 CSS 选择器的一个元素,或者

document.querySelectorAll('.cssSelector')

Which 将返回多个元素。

I suggest you to use JQuery, where you can use directly CSS selectors (like .yourclass) to find all elements of a given class:

$('.yourclass').doWhatYouWant();

If you prefer not to use JQuery, you can use plain Javascript:

document.getElementsByClassName('my-fancy-class')

But be careful with IE8 incompatibility issue.
As an alternative (slower but you can build more complex CSS selectors) you can use:

document.querySelector('.cssSelector')

Which will return one element responding to your CSS selector, or

document.querySelectorAll('.cssSelector')

Which will return multiple elements instead.

遇到 2024-12-28 18:01:13

您可以使用 jquery

$('.className').html();

http://api.jquery.com/html/来完成此操作

You can do this using jquery

$('.className').html();

http://api.jquery.com/html/

煮茶煮酒煮时光 2024-12-28 18:01:13

如果您使用 jQuery,您可以像在 CSS 选择器中一样获取它:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>

那么...

$('.classname').each(function() {
    // get html
    $(this).html();
    // set html
    $(this).html('something');
});

请注意,您还有管理 innerHTML 的便捷方法。

If tou use jQuery you can get it as you would in a CSS selector so:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>

then...

$('.classname').each(function() {
    // get html
    $(this).html();
    // set html
    $(this).html('something');
});

Notice you have also convenient way to manage innerHTML.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文