从jQuery的跨度值属性设置文本字段的值
问题描述:
我有一个小问题,为了造型的目的我使用了一个定义列表而不是一个组合框,在我的dd标签内部,每个里面都有一个ul ,有一个跨度,具有值属性。我试图把这个值放在文本字段上,所以我可以在后期操作中使用它。此代码是我立的点击函数中:从jQuery的跨度值属性设置文本字段的值
var temp = $(this).find("span").attr("value");
$("#ch").val(temp);
我相信我的选择是正确的,因为当我登录临时的价值,这是一个我想要的,但是当我登录的CH字段的值,我得到未定义。
我错过了什么? 在此先感谢。
何塞。
答
$("#ch").val($(this).find("span").text());
不过,如果你使用的时候是肯定temp
具有正确的价值(甚至错误的方法),那么你可能没有达到你的目标,你确定这个元素有ID ch
?
答
只是要知道,span
元素没有value
属性,除非您自己在标记中定义它。
可能的方式来实现你想要的:
使用此:
$('#ch').val($(this).find('span').html());
或者:
$('#ch').val($(this).find('span').text());
这里面:
$(selector).on('click', function() {
$('#ch').val($(this).find('span').text());
});
可能的解决方案,以undefined
问题:
- 确保您使用的是正确的ID为您要设置的值的元素。
- 也许你的元素
#ch
是DOM,所以你需要使用.on()
正如上面的例子,而不是仅仅$(selector).click();
谁在正确的心态会给'span'元素赋一个'value'属性(根据你上次更新)? 'span'元素没有'value'属性,除非你自己在标记中定义它。 – 2012-07-24 00:48:09
@FabrícioMatté - 谁知道,但问题确实表明'temp'变量应该包含正确的值? – adeneo 2012-07-24 00:49:36
哦,我的坏,我错过了他声称在'temp'中获得正确值的部分。我的观点仍然存在,可以使用'数据'属性或其他更好的方法。这是OP的一些[参考](http://*.com/q/992115/1331430),如果他正在创建自定义属性。 – 2012-07-24 00:51:37