如何在两个单词之间改变文字?

时间:2013-07-03 08:49:53

标签: php javascript jquery html

<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

如何在两个单词之间更改文字?在此示例中,如果我单击更改按钮,则文本表单输入应替换First和Second之间的文本。 例如在输入中是:“我的新文本”然后点击后应该在div:

首先我的新文字第二

我必须只使用javascript - jquery,因为我从其他服务器接收div而且我无法修改html。


对不起 - 我编辑了我的问题。这还有其他div。

5 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

试试这个

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

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

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

答案 2 :(得分:1)

你可以做到

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

答案 3 :(得分:0)

试试这个

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

fiddle

答案 4 :(得分:0)

你可以尝试这样的事情。这是一般方法。所以你应该根据需要修改它

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

P.S。我没有仔细测试过,但一见钟情就可以了。

根据您的代码,您刚刚接到第二个字 我可以建议下一步:

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