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

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

首先我的新文本第二

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


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

4

5 回答 5

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);
于 2013-07-03T08:52:00.967 回答
1

尝试这个

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

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

  $('#here').html(html.replace(/(to change)/, text)); 
})
于 2013-07-03T08:52:14.560 回答
1

你可以做

$('#here').html("First "+ $('#text').val()+ "Second "); 
于 2013-07-03T08:53:00.250 回答
0

像这样试试

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

小提琴

于 2013-07-03T08:59:14.823 回答
0

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

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

PS我没有仔细测试过,但乍一看它是有效的。

根据您的代码,您在第二个单词之后我可以建议下一个:

var newText = oldText.replacereplace(/^(\w+).*?(\w+)(([^<]+)(<div.*))$/m, "$1 my new text $2$3")
于 2013-07-03T09:01:04.193 回答