Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding div dynamically using button click in JavaScript / jQuery

How do I dynamically add div on button click in JavaScript/jQuery? I want all the formatting of div having class "listing listing_ad job".

This is my code which I tried out, using jQuery.

$('#btnAddtoList').click(function(){
	var newDiv = $('<div class="listing listing_ad job"><h4><a>Some text</a></h4> </div>');
  //newDiv.style.background = "#000";
  document.body.appendChild(newDiv);
});
.listing {
  border-bottom: 1px solid #ddd;
  float: left;
  padding: 0 0 5px;
  position: relative;
  width: 559px;
}

.listing:hover {
  background: #f5f5f5 none repeat scroll 0 0;
  border-bottom: 1px solid #ddd;
  cursor: wait;
}

a:hover {
  color: #ff5050;
}

.subtitle {
  width: 430px;
  font-weight: normal;
  font-size: 12px;
  font-family: Arial;
  color: #7f7f7f;
}

.info {
  float: left;
  margin: 10px 15px 5px;
  min-width: 500px;
  
  clear: both;
  color: #7f7f7f;
  margin: 15px 44px 15px 0;
  overflow: hidden;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btnAddtoList">
Add to list
</button>

<div class="listing listing_ad job">
  <h4>
   <a>
  Excellent Opportunity For Internship at Diamond
  </a>
  </h4>
  <div class="subtitle">
  Lahore, Punjab
  </div>
  <div class="info">
  This is Info / Description.
  </div>
</div>
<!-- ************************ -->

<div class="listing listing_ad job">
  <h4>
  <!-- Src: http://jobs.mitula.pk/internship-program-lahore-jobs -->
  <a>
  Excellent Opportunity For Internship at Diamond
  </a>
  </h4>
  <div class="subtitle">
  Lahore, Punjab
  </div>
  <div class="info">
  This is Info / Description.
  </div>
</div>
Jsfiddle: http://jsfiddle.net/mr4rngbL/3/
like image 233
Asad Avatar asked Feb 01 '26 02:02

Asad


2 Answers

Yes, you can - by added jQuery to the script of the document, and wrpping the code in document.ready

$(function() {
    $('#btnAddtoList').click(function(){
        var newDiv = $('<div class="listing listing_ad job"><h4><a>Some text</a></h4> </div>');
      //newDiv.style.background = "#000";
       $('body').append(newDiv);
    });
});

Example http://jsfiddle.net/mr4rngbL/5/

Example for what you've asked in the comment: http://jsfiddle.net/mr4rngbL/6/

And LAST example based on your request in the comment: http://jsfiddle.net/mr4rngbL/7/

like image 84
Alon Eitan Avatar answered Feb 02 '26 18:02

Alon Eitan


Here Pure JavaScript Solution

function addDiv(parent_div, content, attrs) {
  var div = document.createElement('div');
  var parent = document.getElementById(parent_div);

  for (var key in attrs) {
    if (attrs.hasOwnProperty(key)) {
      div.setAttribute(key, attrs[key]);
    }
  }
  div.innerHTML = content;
  if (parent) {
    parent.appendChild(div);
  }
}

var button = document.getElementsByTagName('button')[0];
if (button) {
  button.addEventListener('click', function() {
    // change dynamically your new div
    addDiv('parent', 'hi', {
      'class': 'someclass someclass',
      'data-attr': 'attr'
    });
  });
}
<button>Add Div</button>
<div id="parent">

</div>
like image 24
dinindu Avatar answered Feb 02 '26 19:02

dinindu



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!