0

This code works well in all major browsers except Internet Explorer (Opera, Firefox, Crome..)

Every second js issue is related to IE. Thanks in advance.

<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>
enigment
  • 3,316
  • 7
  • 30
  • 35

2 Answers2

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);
    }
}
Ruan Mendes
  • 90,375
  • 31
  • 153
  • 217
Man Programmer
  • 5,300
  • 2
  • 21
  • 21
1

getElementsByName fetches only elements by their name, when they have a name-attribute(following the specification/DTD). Those are e.g. form-elements and images, but not <div>-elements.

You may use querySelectorAll() instead:

document.querySelectorAll("*[name='jezik']")
Dr.Molle
  • 116,463
  • 16
  • 195
  • 201