MNM
MNM

Reputation: 2743

how to replace document.write with innerHTML

I want to replace the document.write with innerHTML. but it won’t create the links when I try it. I don’t know if there is an issue of how I am building the path variable so it won’t print out the links right. Right now it won’t print out any links.

<!DOCTYPE html>
<html lang="en">

<script>

    var path = "";
    var href = document.location.href;
    var s = href.split("/");
    for (var i=2;i<(s.length-1);i++) {
        path+="<a class='crumb'  href=\""+href.substring(0,href.indexOf("/"+s[i])+s[i].length+1)+"/\">"+s[i]+" </a>";
    }
    i=s.length-1;
    path+="<a class='crumb'  href=\""+href.substring(0,href.indexOf(s[i])+s[i].length)+"\">"+s[i]+" </a>";
    var url =  path;
    //document.getElementById(".breadcrumb").innerHTML = url;
    document.write(url);

</script>

<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/webjars/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="/webjars/bootstrap-fileinput/4.2.7/css/fileinput.min.css">
<link rel="stylesheet" href="/webjars/bootswatch/3.3.5+4/yeti/bootstrap.min.css">
<link rel="stylesheet" href="/webjars/font-awesome/4.5.0/css/font-awesome.min.css">
<link rel="stylesheet" href="/webjars/jquery-ui/1.12.1/jquery-ui.min.css">
<link rel="stylesheet" href="/static/app/css/app.css">
<link rel="stylesheet" href="/static/app/css/style.css">
<script src="/webjars/jquery/2.1.4/jquery.min.js"></script>
<script src="/webjars/jquery-ui/1.12.1/jquery-ui.min.js"></script>
<script src="/webjars/bootstrap-fileinput/4.2.7/js/fileinput.js"></script>
<script src="/webjars/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="/webjars/bootstrap-fileinput/4.2.7/js/fileinput_locale_ja.js"></script>
<script src="/static/app/js/app.js"></script>

<style>

.breadcrumb
{
  witdh : 100%;
  text-align: center;
  border: 5px solid transparent;
}

.crumb
{
 display: inline-block;
 float : left;
 font: 16px Helvetica, Arial, Sans-Serif;   
 color: white;
 background-color: #4E95B6;
 border: 1px solid black;
}
.crumb: hover
{
 color: red;
}

</style>

</head>

<body>

{{>partials/browser-compatibility}}
<div class = "breadcrumb"> </div>
<div class="container-fluid">

Upvotes: 0

Views: 1177

Answers (2)

Ashish Panchal
Ashish Panchal

Reputation: 440

you can try document.getElementsByClassName('breadcrumb')[0].innerHTML = url;

Upvotes: 4

LF-DevJourney
LF-DevJourney

Reputation: 28529

use document.ready to ensure have loaded the dom;

you have wrongly used the getElementById;

<div id ="breadcrumb"> </div>
<script>

    var path = "";
    var href = document.location.href;
    var s = href.split("/");
    for (var i=2;i<(s.length-1);i++) {
        path+="<a class='crumb'  href=\""+href.substring(0,href.indexOf("/"+s[i])+s[i].length+1)+"/\">"+s[i]+" </a>";
    }
    i=s.length-1;
    path+="<a class='crumb'  href=\""+href.substring(0,href.indexOf(s[i])+s[i].length)+"\">"+s[i]+" </a>";
    var url =  path;
    document.getElementById('breadcrumb').innerHTML = url;
    //document.write(url);
  </script>

Upvotes: 2

Related Questions