如何通过类名查找元素并获取其值?

55

我想获取一个输入文本框的值。

HTML如下:

<div id="start">
    <p>
        <input type="text" class="myClass" value="my value" name="mytext"/>
    </p>
</div>

这是 jQuery:

var myVar = $("#start").find('myClass').val();

问题在于myVar未定义。有人知道为什么吗?

5个回答

80

类选择器以点号为前缀。你的 .find() 缺少这个,因此 jQuery 认为你正在寻找 <myClass> 元素。

var myVar = $("#start").find('.myClass').val();

3
@Jason:你可能需要发布实际的代码。我有一种直觉,这并不像看起来那么简单。 - BoltClock
没错。这是简化后的代码版本。看起来这个概念应该可行。 - Jason
@Jason,你能否请发布解决方案?我有一种感觉我们在做同样的事情。 - Jacob Valenta
为什么答案与他在问题中提到的那个不起作用的查询完全相同? - dhein
1
@Zaibis:原始代码不同-请查看修订历史记录。坦白地说,我认为这个问题应该被关闭,因为它似乎是一个不同的问题,而且我们没有得到足够的信息来解决它。 - BoltClock
1
最好是他说“这不起作用:'正确的工作查询'”-> 直到我意识到他编辑了他的问题,这才让我感到困惑。 - dhein

19
var myVar = $("#start").find('.myClass').first().val();

10

var myVar = $("#start").find('.myClass').val();

记得在使用CSS选择器时,如果要通过类名选择,请加上"."。如果没有添加".",则会被解释为在查找<myclass></myclass>标签。


4
你可以通过以下方式获取该值:

最初的回答

$(document).ready(function(){
  $("#start").click(function(){
    alert($(this).find("input[class='myClass']").val());
  });
});

1
你可以通过以下方式获取id、name或value的值。 类名为my_class。
 var id_value = $('.my_class').$(this).attr('id'); //get id value
 var name_value = $('.my_class').$(this).attr('name'); //get name value
 var value = $('.my_class').$(this).attr('value'); //get value any input or tag

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接