繁体   English   中英

单击单选按钮时更改文本

[英]Changing text when clicking radio button

我在同一页面上多次列出了以下代码,并且我希望当单击单选按钮时能够在foo-title span元素中显示data-name值。 问题在于,因为.foo-title跨度在DOM中是文本的数倍,所以文本到处都在更新,而不是在1处。 我尝试了几种方法,例如.parent().closest。 prev()但无法弄清楚。

标签以背景图片为样式,文本被隐藏,这就是为什么我要执行上述操作以向用户显示一些文本信息的原因。

HTML

<div class="col-sm-4">
  <p class="foo-title">
    <span></span>
  </p>

  <ul class="foo-container-list">
    <li class="foo-list-item">
      <input class="foo-input" data-name="red" id="foo_id_1" name="foo_id" type="radio" value="1">
      <label for="foo_id_1">red</label>
    </li>
    <li class="foo-list-item">
       <input class="foo-input" data-name="green" id="foo_id_2" name="foo_id" type="radio" value="2">
       <label for="foo_id_2">green</label>
    </li>
    <li class="foo-list-item">
       <input class="foo-input" data-name="blue" id="foo_id_3" name="foo_id" type="radio" value="3">
       <label for="foo_id_3">blue</label>
    </li>
  </ul>
</div>

JS

fooBar.updateFooName = function(foo) {
  var fooName = foo.data('name');
  if (fooName) {
    $('.foo-title span').text(fooName);
  }
};

$(document).ready(function() {
  $("input[name=foo_id]:radio").change(function() {
    fooBar.updateFooName($(this));
  });
});
fooBar.updateFooName = function() {
  var fooName = $(this).data('name');
  if (fooName) {
    $(this).closest('[class^="col-sm"]').find('.foo-title span').text(fooName);
  }
};

$(document).ready(function() {
  $("input[name=foo_id]:radio").change(fooBar.updateFooName);
});

小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM