2015-08-26 90 views
2

我追加了jquery一個「字符串」,並希望刪除它並添加一個新的「字符串」上。刪除並替換附加點擊

創建了一個簡單的標記來顯示

<a href="#">Test</a> 
<button>remove</button> 

var c = " closed"; 
var o = " open"; 
$("a").append(c); 
$("button").click(function(){ 
$("a").find(c).replaceWith(o); 
    $("a").append(o); 
}); 

http://codepen.io/denniswegereef/pen/KpOjpr

+0

然後發生了什麼事? –

+0

我只是想改變標籤內點擊的字符串。我正在慢慢地學習我的方式,我帶着這個,但不知道這樣做的效率如何 – Dennis

+2

http://jsfiddle.net/arunpjohny/5vpn82c0/1/? –

回答

3

jQuery的原理與元素,而不是文字。

var c = " closed"; 
var o = " open"; 
var el_c = $('<span>').text(c); 
var el_o = $('<span>').text(o); 
$("a").append(el_c); 
$("button").click(function(){ 
    el_c.replaceWith(el_o); 
}); 
1

你會想你的字符串封裝到要改變這樣的SPAN或DIV:

<a href="#">Test <span>closed</span></a> 

有了這個結構,你可以像這樣的一個範圍內改變SPAN的innerHTML :

$('a span').html(o); 

OR:

$('a span').html(c); 
1

你的整體可以用

$("button").click(function() { 
    ($("a span").text() === "open") ? $("a span ").text("close") : $("a span").text("open"); 
}); 

http://jsfiddle.net/5vpn82c0/3/

1

檢查更換使用此解決方案html()

var c = " closed"; 
 
var o = " open"; 
 

 
var a = $('#anchor'); 
 
a.append(c); 
 

 
$('#btn').click(function(){ 
 
    var txt = a.text(); 
 
    var prefix = 'Test'; 
 
    if(txt.indexOf(c) != -1) { 
 
     a.html(prefix + o); 
 
    } else if (txt.indexOf(o) != -1) { 
 
     a.html(prefix + c); 
 
    } 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<a id="anchor" href="#">Test</a> 
 
<button id="btn">remove</button>

1

我想這鋼筆,你想達到什麼: http://codepen.io/anon/pen/zGgVzG

var c = " closed"; 
var o = " open"; 
$("a").append(c); 
$("button").click(function(){ 
    $("a").text($("a").text().replace(c, o)); 
}); 

您不能使用jQuery的find()方法替換文本。這些工作在dom元素上,而不是字符串上。使用文本功能來設置鏈接的文本,並使用JavaScript的本地替換功能來進行文本替換。 爲了澄清,下面的代碼執行和上面一樣,但可能會更容易理解:

var c = " closed"; 
var o = " open"; 
$("a").append(c); 
$("button").click(function(){ 
    var linkText = $("a").text(); 
    var replacedText = linkText.replace(c, o); 
    $("a").text(replacedText); 
}); 
1

創建兩個跨度兩個不同的類別。命名爲'close'和'open'。 然後一個標誌

var s_c = '<span class="close">close</span>'; 
var s_o = '<span class="open">open</span>'; 
var flag = 'c'; 
$("a").append(s_c); 
$("button").click(function(){ 
    if(flag == 'c') 
    { 
     $("a").find('span').remove(); 
     $("a").append(s_o); 
     flag = o; 
    } 
    if(flag == 'o') 
    { 
     $("a").find('span').remove(); 
     $("a").append(s_c); 
     flag = c; 
    } 
}); 

記住這個代碼是使用用於切換文本...!一旦追加打開一次接近... 如果你只尋找一次,有人回答在上面。祝你好運 !