在Jquery中输入文本输入时更改锚标记中的文本

时间:2014-02-14 08:46:57

标签: javascript jquery html

好的,这听起来很简单,但我在尝试识别锚标签时遇到了问题。 HTML块重复出现。

<div class="panel-heading">
  <h4 class="panel-title">
    <a data-toggle="collapse" data-parent="#accordion" href="#q1">
     Question 1
    </a>
  </h4>
</div>
<div id="q1" class="panel-collapse collapse">
  <div class="panel-body">
    <div class="form-group">
      <label for="inputQ1" class="col-sm-2 control-label">Question</label>
      <div class="col-sm-7">
        <input type="text" class="form-control" id="inputQ1" placeholder="e.g How was our service?">
      </div>
    </div>
  </div>
</div>

我得到了我需要的答案 how to show text while typing in textarea in jquery

我需要知道的是,我如何制作它以使锚标记中的文字发生变化?我不想为所有人提供身份证。我应该使用parent()和siblings(),对吧?

6 个答案:

答案 0 :(得分:3)

尝试

jQuery(function ($) {
    $('.panel-body input').keyup(function(){
        $(this).closest('.panel-collapse').prev('.panel-heading').find('a').text(this.value)
    })
});

演示:Fiddle

注意:为了更具体,我可以添加一个额外的类,如this fiddle

所示

答案 1 :(得分:1)

您可以使用keyup和html执行此操作:

$(document).ready(function(){

    $("#text").keyup(function(){

        $("#q1").html($(this).val());

    });

});

其中#text是textarea而#q1是锚:

JSFiddle

答案 2 :(得分:1)

您可以使用:

$('#inputQ1').keyup(function(){
    var $this = $(this);
    $this.closest('#q1').prev().find('a').html($this.val());
});

<强> Fiddle Demo

答案 3 :(得分:1)

我认为最好(因为逻辑)你是否可以围绕这段代码创建一个父母(如果可以的话)

<div class="parent">
  <h4>
    <a>...</a>
  </h4>
  <div>
     <input>
  </div>
</div>

如果$(this)是您的输入

您可以使用$(this).closest('parent').find('a')查找

答案 4 :(得分:0)

尝试使用锚父:

$('.panel-title a').text( /* textarea text */ );

答案 5 :(得分:0)

试试这个

$('.panel-title a').text( 'new text' );