jQuery:选择元素子元素

时间:2018-02-07 22:35:57

标签: javascript jquery html parent-child

HTML:

<form id=f1>
  <div>
    <input id=text>
  </div>
</form>

<form id=f2>
  <div>
    <input id=text>
  </div>
</form>

jQuery的:

$('form').submit(function(){
  var id=$(this).attr('id');
  var text=$('#'+id+'#text').val();
  alert(text);
});

结果:

  

未定义

我需要选择输入,但我不知道如何,

此问题已更正

2 个答案:

答案 0 :(得分:2)

您需要在选择器的各个部分之间留一个空格:

var text = $("#" + id + " #text").val();

但根本不需要使用ID:

var text = $(this).find("#text").val();

此外,ID应该是唯一的,您不能多次id="text"。您应该使用class="text",然后它将是:

var text = $(this).find(".text").val();

$('form').submit(function(){
  var text=$(this).find(".text").val();
  console.log(text);
  return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id=f1>
  <div>
    <input class=text>
  </div>
</form>

<form id=f2>
  <div>
    <input class=text>
  </div>
</form>

答案 1 :(得分:0)

首先,你不应该使用多个id! ID应该是唯一的。

在您的示例中,您将错误的选择器传递给jQuery函数,它应该是: var text = $('#' + id + ' #text');(选择器之间缺少空格)