jQuery attrib使用数据

时间:2014-03-31 08:50:52

标签: javascript jquery html html5

好的,我对这一部分感到困惑,但我已经遵循了这些指导原则,当我应用它时,仍然将数据属性而不是值放在我的隐藏输入中。

这是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而不是价值。一个小的解释将不胜感激。

7 个答案:

答案 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

的用户ID
$(".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'));
});

JSFiddle

答案 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')更方便,因为它更易读,更容易调试。