Jquery element.PrevUtil(“选项:包含()”)未返回预期结果
假设我无法控制HTML的格式,即:Jquery element.PrevUtil(“选项:包含()”)未返回预期结果,jquery,Jquery,假设我无法控制HTML的格式,即: <select id="foods"> <option value='0'>Some Vegetables</option> <option value='1'>-Carrot</option> <option value='2'>Some Fruits</option> <option value='3'>-Apple</option>
<select id="foods">
<option value='0'>Some Vegetables</option>
<option value='1'>-Carrot</option>
<option value='2'>Some Fruits</option>
<option value='3'>-Apple</option>
<option value='4'>-Orange</option>
<option value='5' selected='selected'>-Strawberry</option>
<select>
但是,这将返回与-Orange相对应的parentVal=4
var parentVal = strawberry.prevUntil("option:contains('-')").val()
var parentVal = strawberry.prevUntil("option:contains('Fruits'))").prev().val()
…给我parentText=未定义
var parentVal = strawberry.prevUntil("option:contains('Fruits')").val()
…为我提供parentVal=4
,对应于-Orange
var parentVal = strawberry.prevUntil("option:contains('-')").val()
var parentVal = strawberry.prevUntil("option:contains('Fruits'))").prev().val()
…为我提供了parentVal=3,对应于-Apple
发生什么事了?显然,我误解了.previtil()
是如何工作的,或者至少它在
元素的上下文中是如何工作的。选择任何水果时,是否有任何关于正在发生的事情以及如何返回“一些水果”的输入?使用.prevAll()
而不是.previtil()
演示
var草莓=$(“#食品”).find(“:selected”)
var parentVal=草莓.prevAll(“选项:包含('Fruits')”).val()
console.log(parentVal)
一些蔬菜
-胡萝卜
一些水果
-苹果
-橙色的
-草莓的
老兄,这段时间只是使用了错误的功能。你能解释一下为什么.prevAll()
有效,而previtil()
无效吗?我想我只是有一个基本的误解。看看这个链接,它解释得比我感谢你更好!我在这里找到的任何相关问题都使用了.previtil()
,jQuery文档中的描述也不太清楚。那篇文章澄清了一切。