使用 jquery,当我单击链接时,如何引用其上方的选择下拉列表?
我有一个链接,我监听点击事件。在事件处理程序中,我想验证用户是否确实在此链接上方的选择下拉列表中做出了选择。
如何获得相对于我的链接的此选择项目的引用,以便我可以验证它?
这是下面的 html。事件处理程序位于单击“.Next”链接时。
<select class="dropdown" name="myDropdown">
<option value="">Select Item . . .</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<br>
<a id="Next3" class="Next" href="">Next</a>
I have a link and I listen to the click event. In the event handler, I want to validate that the user has actually made a choice on the select dropdown right above this link.
How can I get a reference to this select item relative to my link so I can validate it?
here is the html below. the event handler is on the click of the ".Next" link.
<select class="dropdown" name="myDropdown">
<option value="">Select Item . . .</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<br>
<a id="Next3" class="Next" href="">Next</a>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 JQuery,最具体的选择器如下所示:
代码说明:
$("#Next3")
指的是id="Next3"
的链接.prevAll()
是一个根据选择器选择所有先前元素的函数(仅prev
不起作用)。select.dropdown[name='myDropdown']:first
选择第一个(最近的)出现的select
元素,其类为dropdown
且名称等于myDropdown
(区分大小写)。Using JQuery, the most specific selector looks like:
Explanation of code:
$("#Next3")
refers to the link withid="Next3"
.prevAll()
is a function which selects all previous elements according to a selector (justprev
doesn't work).select.dropdown[name='myDropdown']:first
selects the first (closest) occurence of theselect
element, which class isdropdown
and name equalsmyDropdown
(case sensitive).如果选择直接在链接之前,那么您可以使用
prev
http://api. jquery.com/prev/如果 HTML 更复杂,那么您需要将其发布。
If the select is directly before the link then you can use
prev
http://api.jquery.com/prev/If the HTML is more complicated then that you'll need to post it.
您可以使用同级选择器或父选择器或两者的组合,但我不推荐它,因为这些类型的选择器往往很脆弱。当您更改 html 的结构时,选择器可能会失败。
我认为如果你给你的下拉菜单一个id,然后使用jquery.data()将该id与链接关联起来会更好。
更新:
鉴于您发布的 html,请尝试使用closest() 过滤器。
例如,在您的事件处理程序中:
如果名称已知或只有一对链接下拉列表,您只需按名称引用选择即可。
You can use sibling or parent selectors or a combination both but I would not recommend it since those kinds of selector tend to be fragile. When you change the structure of your html the selector might fail.
I think it would be better if you give your dropdown an id, then associate that id with the link using jquery.data().
Update:
Given the html you posted, try using the closest() filter.
e.g. in your event handler:
If the name is known or there is only one pair of link-dropdown you can just refer to the select by name then.