【问题标题】:How to change radio button label generated by drupal using jquery?如何使用 jquery 更改 drupal 生成的单选按钮标签?
【发布时间】:2012-01-17 16:21:47
【问题描述】:

我有两个由 drupal 生成的单选按钮。我还有一个文本编辑框和一个按钮。用户应该输入它的 id,当用户点击按钮时,将会有一个 ajax 请求从数据库中获取两个值。我希望这两个值显示在单选按钮标签中。

Drupal 为单选按钮生成的代码如下所示:

<div class="form-radios">
  <div class="form-item" id="edit-new-amount-no-cost-wrapper">
    <label class="option" for="edit-new-amount-no-cost">
    <input type="radio" id="edit-new-amount-no-cost" name="new_amount" value="no_cost" class="form-radio" />
    Item 1
    </label>
  </div>
  <div class="form-item" id="edit-new-amount-rounded-wrapper">
    <label class="option" for="edit-new-amount-rounded">
    <input type="radio" id="edit-new-amount-rounded" name="new_amount" value="rounded" class="form-radio" />
    Item 2
    </label>
  </div>
</div>

如果我这样做:

alert($("label[for=edit-new-amount-no-cost],#edit-new-amount-no-cost").text());

它将输出“项目 1”,所以我尝试使用以下方法更改文本:

$("label[for=edit-new-amount-no-cost],#edit-new-amount-no-cost").text(values[1]);

但是,我可能更改了整个标签内容,因为“项目 1”旁边的单选按钮消失了 :(

有什么想法吗?我想将“项目 1”和“项目 2”更改为 ajax 请求中的特定值。我不想更改整个标签内容,因为这样单选按钮就会消失。

亲切的问候, 塞缪尔

【问题讨论】:

  • 您正在使用两个选择器,它们可能会返回两个结果。尝试将其缩小到一个选择器。它可能会给你一个更准确的结果。

标签: jquery drupal radio-button


【解决方案1】:

试试这个

var radio_elem = $('#edit-new-amount-no-cost');
$("label[for='edit-new-amount-no-cost']").html(radio_elem).append("mylabel");

小提琴示例:http://jsfiddle.net/gAypv/1/

【讨论】:

  • 嗯,现在我看到了一个问题。如果多次这样做,“mylabel”将出现多次。我找到了另一个解决方案:
  • var label_contents = $("label[for='edit-new-amount-no-cost']").contents(); label_contents[label_contents.length-1].nodeValue = "mylabel";
猜你喜欢
  • 2020-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-24
  • 1970-01-01
  • 2016-04-25
相关资源
最近更新 更多