我想要做的就是抓住一个div,克隆它,修改它的一些内容,然后追加它。我虽然很难修改它的一些内容。
这是选择器
$('div.checkbox:first').html()
产生以下内容
<label><input type="checkbox" name="Categories[cat_name][]" value="Life" checked=""> Life</label>
我如何改变生活&#34;和平&#34;在这两个地方?请注意,它不会永远是#34; Life&#34;。
答案 0 :(得分:2)
<强> jsFiddle Demo
强>
更改input元素的值是微不足道的,jQuery为它提供了函数val
$('div.checkbox:first input[type="checkbox"]').val("Peace")
然而,改变&#34; Life&#34;和平&#34;要困难得多。那是因为&#34;生活&#34;它本身不在元素内部,它位于标签内部,该标签还包括输入元素。为了将此内容分开以进行更改,必须检查文本节点。 jQuery没有提供这样做的方法所以必须使用本机JavaScript
var div = $('div.checkbox:first');
//Change the input value to "Peace"
$('input[type="checkbox"]',div).val("Peace");
//locate the label element
var label = $('label',div);
//locate the last child of the child nodes of the label (this will be the textNode)
var labelText = label[0].childNodes[label[0].childNodes.length-1];
//assign the textNode's textContent value as "Peace" changing the text.
labelText.textContent = "Peace";
var div = $('div.checkbox:first');
$('input[type="checkbox"]',div).val("Peace");
var label = $('label',div);
var labelText = label[0].childNodes[label[0].childNodes.length-1];
labelText.textContent = "Peace";
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="checkbox">
<label><input type="checkbox" name="Categories[cat_name][]" value="Life" checked=""> Life</label>
</div>
&#13;