Javascript 将li标记值传递给文本输入
嗨 我有一个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 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());
});
AFAIKvalue
对于li
元素无效。(不完全正确,请参见)您可以通过以下方式使用
rel
:
<li rel="myLi" class="myLi">My element</li>
如果要从li
元素获取文本,请使用$(this).text()
引用:,AFAIKvalue
对于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');
});