80

我已经尝试了以下代码,但它不起作用。知道我哪里出错了吗?

document.getElementsByClassName('appBanner').style.visibility='hidden';
<div class="appBanner">appbanner</div>

使用 jQuery 或更改 HTML 是不可能的,因为我[self->webView stringByEvaluatingJavaScriptFromString:@""];在 Objective-C 中使用。

4

4 回答 4

145

document.getElementsByClassName返回HTMLCollection与类名匹配的所有元素的(类似数组的对象)。该style属性是为Elementnot for定义的HTMLCollection。您应该使用方括号(下标)表示法访问第一个元素。

document.getElementsByClassName('appBanner')[0].style.visibility = 'hidden';

更新了 jsFiddle

要更改与该类匹配的所有元素的样式规则,请使用 Selectors API:

[].forEach.call(document.querySelectorAll('.appBanner'), function (el) {
  el.style.visibility = 'hidden';
});

如果for...of可用:

for (let el of document.querySelectorAll('.appBanner')) el.style.visibility = 'hidden';
于 2013-08-24T02:44:05.740 回答
41
var appBanners = document.getElementsByClassName('appBanner');

for (var i = 0; i < appBanners.length; i ++) {
    appBanners[i].style.display = 'none';
}

JSF 中。

于 2013-08-24T02:45:13.237 回答
-2
Array.filter( document.getElementsByClassName('appBanner'), function(elem){ elem.style.visibility = 'hidden'; });

分叉@http : //jsfiddle.net/QVJXD/

于 2013-08-24T02:46:50.547 回答
-4
<script type="text/javascript">
        $(document).ready(function(){

                $('.appBanner').fadeOut('slow');

        });
    </script>

或者

<script type="text/javascript">
        $(document).ready(function(){

                $('.appBanner').hide();

        });
    </script>
于 2016-09-06T10:51:14.113 回答