Javascript 将li标记值传递给文本输入

Javascript 将li标记值传递给文本输入,javascript,jquery,html,Javascript,Jquery,Html,嗨 我有一个li标签,如下所示: <li value="myLi" class="myLi">My element</li> 知道mytext是text类型的输入,如何将li标记的值传递给输入,如果不可能,如何使用innerHTML在li标记之间传递代码 我尝试的代码不起作用 谢谢你我想你想要的是: $(".myLi").click(function(){ $('#mytext').val($(this).text()); }); 下面是一个演示: 或者,如果

嗨 我有一个li标签,如下所示:

<li value="myLi" class="myLi">My element</li>
知道
mytext
是text类型的输入,如何将li标记的值传递给输入,如果不可能,如何使用innerHTML在li标记之间传递代码

我尝试的代码不起作用
谢谢你

我想你想要的是:

$(".myLi").click(function(){
    $('#mytext').val($(this).text());
});
下面是一个演示:

或者,如果您想从该value属性中获取val:正如Felix指出的,value不是
  • 的有效属性。(参见@T.J.Crowder的答案)您可以将其更改为数据值,如下所示:

    <li data-value="myLi" class="myLi">My element</li>
    

    演示:我想你想要的是:

    $(".myLi").click(function(){
        $('#mytext').val($(this).text());
    });
    
    下面是一个演示:

    或者,如果您想从该value属性中获取val:正如Felix指出的,value不是
  • 的有效属性。(参见@T.J.Crowder的答案)您可以将其更改为数据值,如下所示:

    <li data-value="myLi" class="myLi">My element</li>
    
    演示:

    尝试以下操作

    $(".myLi").click(function() {
      $("#myText").val($(this).text());
    });
    
    试试下面的方法

    $(".myLi").click(function() {
      $("#myText").val($(this).text());
    });
    
    AFAIK
    value
    对于
    li
    元素无效。(不完全正确,请参见)
    您可以通过以下方式使用
    rel

    <li rel="myLi" class="myLi">My element</li>
    
    如果要从
    li
    元素获取文本,请使用
    $(this).text()

    引用:,

    AFAIK
    value
    对于
    li
    元素无效。(不完全正确,请参见)
    您可以通过以下方式使用
    rel

    <li rel="myLi" class="myLi">My element</li>
    
    如果要从
    li
    元素获取文本,请使用
    $(this).text()


    参考:,

    尽管有人说,
    value
    确实是
    li
    元素的有效属性,它反映在
    value
    属性中,但它必须是整数():

    value属性(如果存在)必须是给出列表项序号值的有效整数。
    。。。
    如果value属性存在,用户代理必须将其解析为整数,以确定属性的值。如果属性的值无法转换为数字,则必须将该属性视为不存在。该属性没有默认值

    如果粘贴的代码只是一个快速编辑,并且您真的将使用整数,那么如果您没有在jQuery实例中包装
    ,那么您的代码将正常工作:

    HTML:

    如果要使用字符串,最好还是使用新的:

    HTML:


    尽管有人说,
    value
    确实是
    li
    元素的有效属性,它反映在
    value
    属性中,但它必须是整数():

    value属性(如果存在)必须是给出列表项序号值的有效整数。
    。。。
    如果value属性存在,用户代理必须将其解析为整数,以确定属性的值。如果属性的值无法转换为数字,则必须将该属性视为不存在。该属性没有默认值

    如果粘贴的代码只是一个快速编辑,并且您真的将使用整数,那么如果您没有在jQuery实例中包装
    ,那么您的代码将正常工作:

    HTML:

    如果要使用字符串,最好还是使用新的:

    HTML:


    您可以使用全局属性“title”来快速、方便地进行编辑

    <li title="myLi" class="myLi">My element</li>
    

    希望有此帮助。

    您可以使用全局属性“title”快速简便

    <li title="myLi" class="myLi">My element</li>
    

    希望能有所帮助。

    您错过了右括号和分号:)和@Ender我认为OP要求从
    li
    属性中获取一个值(在本例中,语法无效的
    value
    属性),不是
    li
    的文本。你错过了你的右括号和分号:)和@Ender。我认为OP要求从
    li
    上的属性中获取一个值(在本例中是语法无效的
    属性),而不是
    li
    的文本。或者你可以使用
    数据值
    (HTML5)和
    $(此).data(“值”)
    。虽然在HTML5之前的版本中,注入额外属性在语法上是不正确的,但在我所知道的所有浏览器和版本中,它都是无害的。使用
    数据值
    而不是
    恰好也使其在语法上对HTML5 doctype有效。“T.J.编码器的答案”LOL!!弗洛伊德式滑倒?@TJCrowder:是的:)对不起。。。我试图在你看到它之前更改它,但我的internet连接非常糟糕:D@Felix:伙计,别担心,让我笑了。:-)@TJCrowder:我们中至少有一个人可以嘲笑我糟糕的互联网连接;):您可以使用
    数据值
    (HTML5)和
    $(this).data('value')
    。虽然在HTML5之前的版本中,注入额外属性在语法上是不正确的,但在我所知道的所有浏览器和版本中,它都是无害的。使用
    数据值
    而不是
    恰好也使其在语法上对HTML5 doctype有效。“T.J.编码器的答案”LOL!!弗洛伊德式滑倒?@TJCrowder:是的:)对不起。。。我试图在你看到它之前更改它,但我的internet连接非常糟糕:D@Felix:伙计,别担心,让我笑了。:-)@TJCrowder:我们中至少有一个人可以嘲笑我糟糕的互联网连接;):这就是为什么在dreamweaver中,value属性出现在li的属性列表中,谢谢您的回答。@Simo:不用担心,很高兴这有帮助。:-)这就是为什么值属性出现在dreamweaver中li的属性列表中,谢谢您的回答。@Simo:不用担心,很高兴这有帮助。:-)
    $(".myLi").click(function(){
        document.getElementById('myText').value=$(this).attr('data-value');
        // Or
        // $('#myText').attr('value', $(this).attr('data-value'));
    });
    
    <li title="myLi" class="myLi">My element</li>
    
    $(".myLi").click(function(){
        document.getElementById('myText').value=this.attr('title');
    });