jquery $(this).attr(…) 返回未定义
我正在尝试获取 option
元素的标题,但它始终返回未定义。 $(this).attr("name")
...和 $(this).attr("value")
也会发生这种情况,但奇怪的是 $( this).val() 有效(如预期)。不过,我可以使用
$(this).attr("value", "baz")
设置该值。
I'm trying to get the title of an option
element, but it keeps returning undefined. This also happens for $(this).attr("name")
…and $(this).attr("value")
, but curiously $(this).val()
works (as expected). Yet, I'm able to set the value with $(this).attr("value", "baz")
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
this
指向完整代码(您可以安全地解开
$opt
的 jquery 包装器,并使用$opt.title
和$opt.name< /code>,这些在所有浏览器中都是安全的):
另一种方法,jQuery 方式是:
this
points to the<select>
element. For the selected option, use:Full code (you can safely unwrap
$opt
's jquery wrapper, and use$opt.title
and$opt.name
, these are safe across all browsers):Another method, the jQuery-way is:
这是因为您错误地理解了
this
在代码中代表的含义。this
表示已更改的select
元素。因为 select 节点没有title
属性,所以它是未定义的。您需要做的是枚举选择的选项列表并找到选定的项目。然后,您可以对该项目进行操作以查找信息,如下所示:This is because you have mistaken what
this
represents in your code. Thethis
represents theselect
element that has changed. Because the select node doesnt have atitle
attribute, it is undefined. What you would need to do is enumerate over the options list of the select and find the item that is selected. Then, you can operate on that item to find information like so: