我想使用Jquery设置标签文本。问题是标签包含文本框。每当我设置标签文本时,标签内的文本框都会被删除。标签代码如下 -
<label> Search:<input id="search" type="text" ></label>
我想用下面给出的JQuery代码设置标签 -
<script type="text/javascript">
$(document).ready(function() {
$("#search").parent().append("some Text");
});
</script>
答案 0 :(得分:2)
var input = $("#search");
$("#search").parent().text("some Text").append(input);
答案 1 :(得分:1)
试试这个:
<script type="text/javascript">
$(document).ready(function() {
//get clone copy of input
var $input = $("#search").clone();
//replace text in parent
var $parent = $("#search").parent();
$parent.text("some Text");
//append input again
$parent.append($input);
});
</script>
<强> Demo 强>
答案 2 :(得分:1)
您可以使用contents()
获取元素中的节点,并filter
专门检索textNodes。考虑到这一点,这将对你有用:
$("#search").closest('label').contents().filter(function () {
return this.nodeType == 3;
}).first()[0].nodeValue = 'Some text:';
或者,如果您更改HTML结构以在标签文本周围放置span
,则可以大大简化代码:
<label>
<span>Search:</span>
<input id="search" type="text" />
</label>
$("#search").siblings('span').text('Some text:');
答案 3 :(得分:-1)
试试这个:
<label id="lab"> Search:<input id="search" type="text"></label>
<button>change label</button>
$('button').on('click' ,function(){
var input = $("#search");
$("#lab").text("some Text").append(input);
})