用jQuery更改文本

时间:2011-06-19 19:07:49

标签: jquery

我需要更改链接中的文字,点击“打开”到“关闭”。

<a href="#" id="clickMe"><span class="A open"></span>open</a>

但是,在成功运行AJAX功能后如何更改标签?

success: function(){
   $("#clickMe").find("span").toggleClass("open close");
   // toggle label 
}

4 个答案:

答案 0 :(得分:2)

如果要更改文本,可以使用.html()方法:

$("#clickMe").html("<span class=\"close\"></span>close");

如果你想保持span不受影响:

$('#clickMe').contents().filter(function() {
    return this.nodeType == 3;
}).replaceWith('close');

答案 1 :(得分:2)

您可以使用contents()和正确的索引来修改实际的TextNode内容:

   var s = $("#clickMe").find("span").toggleClass("open close").attr('class'); 
    s = s.replace("A","").replace(" ",""); // get rid of the other class for the text to be used
   $("#clickMe").contents()[1].nodeValue = s;   

或同一行:

$("#clickMe").contents()[1].nodeValue = $("#clickMe").find("span").toggleClass("open close").attr('class').replace("A","").replace(" ","");   

修改

如果您想使用除课程名称之外的其他文本,您可以这样做:

$('button').click(function(){
   var s = $("#clickMe").find("span").toggleClass("open close").hasClass('open'); 
    if (s) s = "Open text";
    else s = "Closed text";

   $("#clickMe").contents()[1].nodeValue = s;

}); 

示例:http://jsfiddle.net/niklasvh/ULsx4/13/

示例(1):http://jsfiddle.net/niklasvh/ULsx4/&amp;单行:http://jsfiddle.net/niklasvh/ULsx4/12/

答案 2 :(得分:0)

尝试 $("#clickMe span").text("my text")

答案 3 :(得分:0)

$('#clickMe').contents().filter(function() {   
    return this.nodeType == 3;
}).get(0).nodeValue = 'Hello';