好的,我对这一部分感到困惑,但我已经遵循了这些指导原则,当我应用它时,仍然将数据属性而不是值放在我的隐藏输入中。
这是HTML代码
<div class="aside">
<a href="#" class="user1" data-userid="1">User Name 1</a>
<a href="#" class="user2" data-userid="2">User Name 2</a>
</div>
<form action="" method="post" class="form1">
<input type="hidden" value="">
<textarea name="msg" id="" cols="30" rows="10"></textarea>
</form>
虽然这是简短的jQuery
$(".aside").find("a").on("click", function(){
$(this).offsetParent().find(".form1 input").attr('data-userid', $('input').attr('value'));
});
我想获取UserID数据的值并将其传递给我的隐藏输入。 我觉得我在那里,但仍然给我错误的attr而不是价值。一个小的解释将不胜感激。
答案 0 :(得分:3)
试试这个:
$(".aside a").on("click", function(e) {
e.preventDefault();
var userID = $(this).data('userid');
$('.form1 input[type="hidden"]').val(userId);
});
答案 1 :(得分:2)
试试这个
$('.aside a').click(function(e){
$('input[type=hidden]').val($(this).data('userid'));
e.preventDefault();
});
<强> DEMO HERE 强>
答案 2 :(得分:1)
您需要获取所点击的a
$(".aside a").on("click", function (e) {
e.preventDefault();
$(this).closest('.aside').next().find("input").attr('data-userid', $(this).data('userid'));
});
演示:Fiddle
您还想设置属性或隐藏元素的值
答案 3 :(得分:1)
尝试
$(".aside").find("a").on("click", function(e){
e.preventDefault();
$("input").val($(this).attr('data-userid'));
});
答案 4 :(得分:1)
使用.data()
:
$(this).data('userid'):
点击代码:
$(".aside").find("a").on("click", function(){
$(this).offsetParent().find(".form1 input").attr('data-userid', $('input').attr('value'));
$("#form1 input").val($(this).data('userid'));
});
<强> Working Demo 强>
答案 5 :(得分:1)
$(".aside").find("a").on("click", function(){
$(".form1 input").attr('value',$(this).attr('data-userid'));
});
答案 6 :(得分:1)
$(".aside a").click(function(e) {
e.preventDefault();
var userID = $(this).data('userid');
$('.form1 input[type="hidden"]').val(userId);
});
因为你没有动态加载任何DOM元素,使用jQuery的click()函数而不是on('click')更方便,因为它更易读,更容易调试。