将文本从dd传递给输入值

时间:2016-12-08 15:41:35

标签: javascript jquery

我想将文本从dd传递给输入值,但我无法弄清楚如何管理它。

以下是HTML中的代码:

<dd>
<dt class="Phone">Phone:</dt>
<dd class="Phone"><p>+995595858567</p>
</dd>

<input type="text" name="phone2" class="phone2" id="phone2 value=""></input>

以下是我使用的jQuery代码:

$('dd.Phone').ready(function() {
    $('#phone2').text($(this).text());
});

我需要立即发生这种情况(不是点击或更改等)

我在JS中非常糟糕,所以请你能给我任何想法吗?

2 个答案:

答案 0 :(得分:1)

你有两个问题。第一个是<input type="text" />自我关闭(注意最后/>,而不是需要</input>标记。

其次,就输入而言,您需要设置.value属性,而不是.textContent属性。为此,在jQuery中,您将需要使用.val()

jQuery(function ($) {
  $('#phone2').val($('dd.Phone p').text());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<dl>
  <dt class="Phone">Phone:</dt>
  <dd class="Phone"><p>+995595858567</p></dd>
</dl>

<input type="text" name="phone2" class="phone2" id="phone2" value="" />

修改

评论者对我来说太快了。感谢 @MikeMcCaughan @GoneCoding @Taplar ,他们对答案有了很好的补充。

作为 @MikeMcCaughan 注意事项,根据您对XHTML与HTML5的使用情况,使用<input type="text">而不使用结束斜杠/>&lt; - 这里看到的情况也是合理的

在评论中提及 @GoneCoding 时,输入元素缺少一个结束双括号,以关闭id字段上的input属性。

此外,我更正了HTML标记。我认为将<dd><dt>嵌套在另一个<dd>内并不合适。此外,内部<dd>未正确关闭</dd>

答案 1 :(得分:1)

您只需将代码直接放在就绪函数中:

$(function() {
    $('#phone2').val($('dd.Phone').text());
});

注1:您的输入代码中有一个引用"错字,但它不会以</input>结尾:

<input type="text" name="phone2" class="phone2" id="phone2 value=""></input>
__________________________________________________________^ //Missing quote here

应该是:

<input type="text" name="phone2" class="phone2" id="phone2" value=""/>

注2:输入没有text()方法使用val()代替设置值。

希望这有帮助。