2013-07-03 45 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 **是静态的吗?或者,您可以检测到第一个和/或第二个词的任何其他静态信息? –

相关问题