我想使用JQuery在两个元素之间更改文本,但我不知道!
例如:
<input type='checkbox' name='ch1'>
This text must be changed !!!
<input type='checkbox' name='ch2'>
另外,我对此Html代码没有任何控制权,因此我无法添加任何ID或标签。
答案 0 :(得分:15)
您可以在父元素上调用contents()以获取其子文本节点,然后使用slice()和index()来查找要删除的文本节点。从那里开始,after()将允许您添加新内容:
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.");
您可以在this fiddle中进行测试。
答案 1 :(得分:1)
使用js replace
函数替换要替换的文本
以下是示例:http://jsfiddle.net/yangchenyun/8zFFc/
这是代码
var replacedText = $('input[name=ch1]').parent().html().replace('This text must change !!!', 'replaced text');
$('input[name=ch1]').parent().html(replacedText);
答案 2 :(得分:0)
2个输入是否在更大的容器div中?然后你可以看到设置divs innerHTML而没有
之间的文本答案 3 :(得分:0)
你可以这样做吗?
<input type='checkbox' name='ch1'>
<span id="change"> This text must change !!!</span>
<input type='checkbox' name='ch2'>
答案 4 :(得分:0)
$(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 }
答案 5 :(得分:0)
我认为您可以尝试contents()
选择所需复选框旁边的文本节点并将其删除。
但是,我认为它可能在IE6 / 7中不起作用。
试试这个
$(function(){
$('input:checkbox').parents().contents()
.filter( function(index){return (this.nodeType === 3 && $('input:checkbox').parents().contents().eq(index-1).attr('name') === 'ch1' ); }).remove();
});
答案 6 :(得分:0)
这可能对您有所帮助:
答案 7 :(得分:-1)
您可以将段落
用于以下文字
<input type='checkbox' name='ch1'>
<p id="change_text"> This text must change !!!</p>
<input type='checkbox' name='ch2'>
在jquery中使用
$("#change_text").html(" Your text here ");