2013-07-03 81 views
3
<input type="text" id="text"> 
<input type="button" value="change" id="change">  

<div id="here"> 
    First to change Second  
    <div class="additional">__RANDOM DATA FROM DATABASE__</div> 
</div> 

$('#change').click(function(){ 
    var text = $('#text').val(); 

    $('#here').html(); 
}) 

jsfiddle如何更改兩個單詞之間的文本?

我怎樣才能改變兩個詞之間的文本?在這個例子中,如果我點擊更改按鈕,那麼文本表單輸入應該替換第一和第二之間的文本。 例如,在輸入是:「我的新文本」,然後點擊後應在股利:

首先我的新案文二

我只能使用的JavaScript - jQuery的,becauce我從其他服務器接收格我不能修改HTML。


對不起,我編輯我的問題。這有其他的div。

+1

http://jsfiddle.net/xHucz/2/ – musefan

+0

另一種方法是修改自己的HTML(與javascript),你可以使用一個id來創建一個跨度,你可以在將來多次使用它:http://jsfiddle.net/xHucz/20/ – musefan

回答

4

爲什麼不存儲前綴和後綴?

$('#change').click(function(){ 
    var prefix = "First "; 
    var suffix = " Second"; 
    var text = $('#text').val(); 

    $('#here').html(prefix + text + suffix); 
}) 

按照你的編輯。恐怕這就是正則表達式的情況。例如:

var oldHtml = $("#here").html(); 
var newHtml = oldHtml.replace(/First\b(.*)\bSecond/, "First " + text + " Second"); 
$("#here").html(newHtml); 
+0

謝謝對不起 - 我編輯了我的問題 – prittret

1

試試這個

http://jsfiddle.net/xHucz/16/

$('#change').click(function(){ 
    var text = $('#text').val(); 
    var html = $('#here').html(); 

    $('#here').html(html.replace(/(to change)/, text)); 
}) 
+0

-1:OP特別說了HTML無法更改。您已添加span標籤 – musefan

+0

@musefan謝謝! – jQuery00

1

你可以做

$('#here').html("First "+ $('#text').val()+ "Second "); 
+0

感謝和抱歉 - 我編輯了我的問題 – prittret

0

嘗試這樣

var text = $('#text').val(); 
$("#here").text($('#here').text().replace("to change", text)); 

fiddle

0

你可以嘗試這樣的事情。這是一般方法。所以你應該修改它,因爲需要

var newText = oldText.replace(/^(\w+).*?(\w+)$/, "$1 my new text $2") 

P.S.我沒有仔細測試這個,但一見鍾情。

Acording到你的代碼只是你的第二個字後有 我可以建議未來:

var newText = oldText.replacereplace(/^(\w+).*?(\w+)(([^<]+)(<div.*))$/m, "$1 my new text $2$3") 
+0

這實際上不會與更新後的問題一起工作,在'$' – mishik

+0

之前會有很多其他數據哦,我明白了。好。在這種情況下,** First **和** Second **是靜態的嗎?或者,您可以檢測到第一個和/或第二個詞的任何其他靜態信息? –

相關問題