使用Jquery设置标签文本

时间:2014-08-08 11:49:00

标签: jquery css

我想使用Jquery设置标签文本。问题是标签包含文本框。每当我设置标签文本时,标签内的文本框都会被删除。标签代码如下 -

<label> Search:<input id="search" type="text" ></label>

我想用下面给出的JQuery代码设置标签 -

 <script type="text/javascript">
        $(document).ready(function() {  
            $("#search").parent().append("some Text");                      
        });
</script>

4 个答案:

答案 0 :(得分:2)

var input = $("#search");
$("#search").parent().text("some Text").append(input);

http://jsfiddle.net/yann86/ez15fuy1/

答案 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:';

Example fiddle

或者,如果您更改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);
 })