getElementsByTagName IE问题

时间:2012-09-28 07:20:06

标签: javascript getelementsbyname

此代码适用于除Internet Explorer(Opera,Firefox,Chrome ..)之外的所有主流浏览器每秒js问题都与IE有关。提前谢谢。

<script type="text/javascript">
function myFunction(nesto,param)
{
var str = nesto;
    if (param == "latin")
    {
    str = str.replace(/Џ/g,"DŽ");
    str = str.replace(/Љ/g,"LJ");
    }
    if (param == "cirilic")
    {
    str = str.replace(/DŽ/g,"Џ");
    str = str.replace(/LJ/g,"Љ");
    }
return str;
}
function konvertor(param) {
 for (i=0;i<document.getElementsByName("jezik").length; i++) {
document.getElementsByName("jezik").item(i).innerHTML = myFunction(document.getElementsByName("jezik").item(i).innerHTML,param);
 }
}
</script>
<button onclick="konvertor('latin')">latinica</button>
<button onclick="konvertor('cirilic')">cirilica</button>
<div name="jezik">DŽ LJ</div>
<div name="jezik">DŽ LJ</div>

2 个答案:

答案 0 :(得分:1)

function konvertor(param) {
    var len=document.getElementsByName("jezik").length;
    for (i=0;i<len; i++) {
        // use array access instead of item()
        document.getElementsByName("jezik")[i].innerHTML = myFunction(document.getElementsByName("jezik")[i].innerHTML,param);
    }
}

答案 1 :(得分:1)

getElementsByName仅在元素have a name-attribute(following the specification/DTD). Those are e.g. form-elements and images, but not <div> - 元素时按名称提取元素。

您可以改为使用querySelectorAll()

document.querySelectorAll("*[name='jezik']")
相关问题