I want to change text between two elements using JQuery, but I don\'t have any idea !
for example:
T
$(document).ready(function(){ alert(getAllBetween("input#ch1","input#ch2")); }); function getAllBetween(firstEl,lastEl) { var firstElement = $(firstEl); // First Element var lastElement = $(lastEl); // Last Element var collection = new Array(); // Collection of Elements collection.push(firstElement); // Add First Element to Collection $(firstEl).nextAll().each(function(){ // Traverse all siblings var siblingID = $(this).attr("id"); // Get Sibling ID if (siblingID != $(lastElement).attr("id")) { // If Sib is not LastElement collection.push($(this)); // Add Sibling to Collection } else { // Else, if Sib is LastElement return false; // Break Loop } }); return collection; // Return Collection }
You can call contents() on the parent element to obtain its child text nodes, then use slice() with index() to locate the text nodes you want to remove. From there on, after() will allow you to add the new content:
var ch1 = $("input:checkbox[name=ch1]"),
ch2 = $("input:checkbox[name=ch2]"),
contents = ch1.parent().contents();
contents.slice(contents.index(ch1) + 1, contents.index(ch2)).remove();
ch1.after("The text was changed.");
You can test it in this fiddle.