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.