相关疑难解决方法(0)

getElementsByClassName&IE8:Object不支持此属性或方法

我知道" getElementsByClassName"不支持IE8.你知道我可以使用什么吗?我因错误而烦恼

"对象不支持此属性或方法".

HTML代码是:

function sumar() {
var elems = document.getElementsByClassName('verdana14 toAdd');
var myLength = elems.length;
total = 0;
for (var i = 0; i < myLength; ++i) {
   if (elems[i].value!="") {
       total += parseInt(elems[i].value,10);
       }
    }

var promedio = total/myLength;
parseFloat(document.getElementById('promediocal').value = promedio.toFixed(2));
}
Run Code Online (Sandbox Code Playgroud)

这是调用javascript函数的输入文本:

<input name='AE_EA_1_BIV_003_2' type='text' class='verdana14 toAdd' id='AE_EA_1_BIV_003_2' style='width:50px' onChange='sumar()'/>
<input name='AE_EA_1_BIV_003_3' type='text' class='verdana14 toAdd' id='AE_EA_1_BIV_003_3' style='width:50px' onChange='sumar()'/>
<input name='AE_EA_1_BIV_003_4' type='text' class='verdana14 toAdd' id='AE_EA_1_BIV_003_4' style='width:50px' onChange='sumar()'/>
Run Code Online (Sandbox Code Playgroud)

javascript internet-explorer-8

47
推荐指数
4
解决办法
8万
查看次数

未捕获的TypeError:无法读取null的属性'getElementsByTagName'

我正在尝试这个解决方案,但是.getElementsByTagName()使用了它,产生了一个错误:

var tags = document.body.getElementsByTagName("*");
Uncaught TypeError: Cannot read property 'getElementsByTagName' of null
Run Code Online (Sandbox Code Playgroud)

为什么会产生此错误,我该如何解决?

javascript function typeerror

15
推荐指数
2
解决办法
8万
查看次数

javascript - 改变一个类的风格

我一直在使用jQuery,但是现在我想用纯JavaScript编写一些东西并且它很有挑战性.我目前最大的问题之一是我没有找到设置/更改的方法为一堂课造型.对于具有id的元素,这不是问题,但是我想要更改具有相同类的一组元素的样式,而不仅仅是针对具有id的一个元素的样式.在jQuery中,我只想写:

$('.someClass').css('color','red')
Run Code Online (Sandbox Code Playgroud)

在纯粹的js中真的没有简单的等价吗?

javascript css jquery class

13
推荐指数
3
解决办法
4万
查看次数

针对IE 8及以下版本?

我有一个在IE 9+和所有其他浏览器中运行良好的脚本.但在IE 8或更低版本中存在视觉错误.我可以通过更改IE 8及更低版本的一些动画效果来修复此视觉错误.要做到这一点,我需要在我的页面上有两个脚本.一个用于IE 9 +,Firefox,Chrome,Safari,另一个用于IE 8及更低版本.

这是我尝试过的:

// First the Script that runs for non-IE browsers. 
<!--[if !IE]>
<script type="text/javascript">
// Script that runs
</script>
<![endif]-->

// Now for the Script for IE 8
<!--[if lt IE 9]>
<script type="text/javascript">
// Script that runs
</script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

第一个问题,主要问题是在尝试时它似乎不起作用.IE开始表现得很疯狂,脚本根本不起作用.如果我删除第一个脚本并离开第二个脚本它没有问题.看起来似乎<!--[if !IE]><!-->没有正常工作.

第二个问题:使用<!--[if !IE]><!-->我可以只针对IE 8及以下版本?

javascript internet-explorer internet-explorer-8

5
推荐指数
1
解决办法
1352
查看次数

从html获取类名的正则表达式

我知道我的问题可能看起来像这个问题的重复,但它不是
我试图匹配来自服务器的html 文本中的类名作为模板使用 JavsScript RegExp 并将其替换为另一个类名。代码如下:

<div class='a b c d'></div>
<!-- or -->
<div class="a b c d"></div>
<!-- There might be spaces after and before the = (the equal sign) -->
Run Code Online (Sandbox Code Playgroud)

例如,我想将“b”类
与可能的最高性能相匹配

这是我使用的正则表达式,但它不适用于所有情况,我不知道为什么:

  var key = 'b';
  statRegex = new RegExp('(<[\w+ class="[\\w\\s]*?)\\b('+key+')\\b([\\w\\s]*")');
  html.replace( statRegex,'SomeOtherClass');// I may be mistake by the way I am replacing it here
Run Code Online (Sandbox Code Playgroud)

javascript regex performance

5
推荐指数
1
解决办法
1万
查看次数

Which way is efficient?

I have over 500 buttons on the page.

<button class="btn-x">test</button>
Run Code Online (Sandbox Code Playgroud)

jQuery:

// #1
$('button[class*="btn-x"]').live('click', function() { }});

// #2
$('.btn-x').live('click', function() { }});
Run Code Online (Sandbox Code Playgroud)

Which call is efficient now, calling directly by class or button[attr*], I want to know it, because it can cause problem later when I have more then 500 buttons but I am not sure if they affect the same result.

html javascript jquery jquery-selectors

4
推荐指数
1
解决办法
172
查看次数

用于特定用途的getElementsByClassName的Polyfill

如何this.getElementsByClassName('class')[0]为Internet Explorer 6-8工作?是否有任何polyfill可以解决此问题?

javascript internet-explorer

4
推荐指数
1
解决办法
2043
查看次数

Jquery - > vanilla javascript?

我是学习jQuery javascript的程序员,但从未真正掌握过vanilla javascript(我知道我是一个顽皮的程序员).我的问题是如何在vanilla JS中复制这个功能?

$('select').change(function() {
    if($(this).val() == "Other (please specify)") {
        $(this).parent().parent().find("input.hidden").show();
    }
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery

3
推荐指数
2
解决办法
3677
查看次数

ie8中的getElementsByClassName

我正在尝试在Internet Explorer 8中为我的HTML创建一个可折叠列表:

<li>
 <a href="#" onclick="test('node1')">hello</a>
 <ul id="node1" class="node" style="display:none">
   <li>Sub-item 1</li>
   <li>Sub-item 2</li>
 </ul>
</li>
<li>
 <a href="#" onclick="test('node2')">test</a>
  <ul id="node2" class="node" style="display:none">
   <li>Sub-item 1</li>
   <li>Sub-item 2</li>
 </ul>
</li>
Run Code Online (Sandbox Code Playgroud)

在javascript我有

function test2(className, link) {
 var e = document.getElementsByClassName(className);

 for (var i = 0, len = e.length; i < len; i++) {
   e[i].style.display = "none";
  }

  link.innerHTML = "Expand";
 }
Run Code Online (Sandbox Code Playgroud)

我用它来称呼它:

      <a href="#" onclick="test2('node', this)">Collapse</a>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这种方法在IE8中不起作用,也没有querySelectAll.有人可以提供一个例子来解决这个问题吗?

html javascript css internet-explorer-8

2
推荐指数
2
解决办法
2万
查看次数

将空格分隔的类列表转换为Jquery选择器的有效方法?

是否有一种快速,可靠的方法来转换空格分隔的类列表,如:

classOne classTwo classThree
Run Code Online (Sandbox Code Playgroud)

到选择器如:

$('.classOne .classTwo .classThree')
Run Code Online (Sandbox Code Playgroud)

我认为可以使用构建选择器字符串的循环或一系列正则表达式(一个用于清理额外的空格,另一个用于转换[space][space].),但我想知道是否有内置的 -在路上,或更简洁/有效/聪明的东西.

javascript regex jquery

0
推荐指数
1
解决办法
636
查看次数