喜 我有一个li标签如下:
<li value="myLi" class="myLi">My element</li>
我尝试了这个jquery代码:
$(".myLi").click(function(){
document.getElementById("mytext").value=$(this).value;
});
知道mytext
是文本类型的输入,如何将li标签的值传递给输入,如果不可能,我如何使用innerHTML在li标签之间传递代码
我尝试的代码不起作用 谢谢
答案 0 :(得分:3)
AFAIK (不完全正确,请参阅@T.J. Crowder's answer )value
不是li
元素的有效属性。
您可以使用rel
:
<li rel="myLi" class="myLi">My element</li>
要设置输入元素的值,请使用val()
:
$(".myLi").click(function(){
$("#mytext").val($(this).attr('rel'));
});
如果您想要从li
元素获取文字,请使用$(this).text()
。
答案 1 :(得分:3)
尽管有人说过,value
确实是li
元素的有效属性,它反映在value
属性中,但它必须是整数< / em>(reference):
value属性(如果存在)必须是一个有效的整数,给出列表项的序数值。
...
如果存在value属性,则用户代理必须将其解析为整数,以便确定属性的值。如果属性的值无法转换为数字,则必须将该属性视为不存在。该属性没有默认值。
如果您的粘贴代码只是一个快速编辑而且您确实将使用整数,那么如果没有在{jQuery实例中包装this
,您的代码就会起作用:< / p>
HTML:
<li value="3" class="myLi">My element</li>
使用jQuery的JavaScript:
$(".myLi").click(function(){
document.getElementById('myText').value=this.value;
// Or
// $('#myText').attr('value', this.value);
});
如果您想使用字符串,最好坚持使用新的HTML5 data-
prefix:
HTML:
<li data-value="myLi" class="myLi">My element</li>
使用jQuery的JavaScript:
$(".myLi").click(function(){
document.getElementById('myText').value=$(this).attr('data-value');
// Or
// $('#myText').attr('value', $(this).attr('data-value'));
});
答案 2 :(得分:2)
尝试以下
$(".myLi").click(function() {
$("#myText").val($(this).text());
});
答案 3 :(得分:1)
我认为你想要的是:
$(".myLi").click(function(){
$('#mytext').val($(this).text());
});
以下是一个演示:http://jsfiddle.net/Ender/QdWxH/
或者如果你想要那个值属性的val:正如Felix指出的那样,value不是(参见@TJ Crowder的答案)你可以改变那到<li>
的有效属性。data-value
,就像这样:
<li data-value="myLi" class="myLi">My element</li>
然后这样做:
$(".myLi").click(function(){
$('#mytext').val($(this).data('value'));
});
答案 4 :(得分:0)
您可以快速轻松地使用全局属性'title'。
<li title="myLi" class="myLi">My element</li>
然后
$(".myLi").click(function(){
document.getElementById('myText').value=this.attr('title');
});
希望得到这个帮助。