很难获得<;选择>;使用jQuery的元素

很难获得<;选择>;使用jQuery的元素,jquery,select,each,option,Jquery,Select,Each,Option,HTML: 在上面的简单代码片段中,我试图将error类添加到中的任何元素(如果其值为空) 问题是,$(this).attr(“id”)由于某种原因没有拾取元素;我收到了关于名字和姓氏的警报,但没有收到关于性别id的警报。我已经在这个看似琐碎的问题上纠缠了好几个小时,但似乎不知道我遗漏了什么 我可能只需要一记耳光,但任何非暴力的帮助都将不胜感激。这与$(这个)无关。attr('id'),这是因为您的选择没有值为“”的选项,它的默认值是m 尝试添加一个: ..... $("#manage .req

HTML:

在上面的简单代码片段中,我试图将
error
类添加到
中的任何元素(如果其值为空)

问题是,
$(this).attr(“id”)
由于某种原因没有拾取
元素;我收到了关于
名字
姓氏
的警报,但没有收到关于
性别
id的警报。我已经在这个看似琐碎的问题上纠缠了好几个小时,但似乎不知道我遗漏了什么


我可能只需要一记耳光,但任何非暴力的帮助都将不胜感激。

这与
$(这个)无关。attr('id')
,这是因为您的选择没有值为
”的选项,它的默认值是
m

尝试添加一个:

.....
$("#manage .required").each( function() {
    if ($(this).val() == "") {
        alert($(this).attr("id") + " is empty!"); // Code for debugging
        $(this).prev().addClass("error");
        is_error = true;
    }
});
.....

--挑选--
男性
女性
犹豫不决
另外,您可以使用
this.value
代替
$(this.val()
this.id
代替
$(this.attr('id')


@Vivendi75换句话说,您原来的
select
默认值为
“male”
,而不是
@PSL-我完全理解您在这里解释的内容。事实上,我的想法与您的想法相同-我希望
if
语句块不会为
select
执行,因为所有选项都不包含空值。但是,情况似乎并非如此。我仍然收到一个关于
select
的警报,但它显示为
(未定义)为空
@Vivendi75为此,您需要执行
返回false
以退出循环。就像这个@PSL-我在你的帮助下明白了,非常感谢!(+1表示旁注)
.....
$("#manage .required").each( function() {
    if ($(this).val() == "") {
        alert($(this).attr("id") + " is empty!"); // Code for debugging
        $(this).prev().addClass("error");
        is_error = true;
    }
});
.....
 <select class="required" name="gender" id="gender">
    <option value="">--Select--</option>
    <option value="m">Male</option>
    <option value="f">Female</option>
    <option value="u">Undecided</option>
</select>