我是jQuery的初学者。如果有人可以帮助我,那将是很棒的。我不确定这里出了什么问题。
这就是我想要的。我有一个类为“spanClass1”的元素。在此元素之前,还有另一个元素和一个文本框元素。我的要求是滚动到该文本框元素并获得焦点元素。此外,我还添加了一些css来了解发生的变化。但问题是上面的代码似乎不起作用。如果我将.prev(..)中的选择器替换为'span',它就可以工作。我错过了什么吗?如果有人可以帮助我,那将是非常有帮助的。
<html><br />
<head><br />
<title><br />jQuery</title><br />
<script type="text/javascript" language="javascript" src="jquery.js"><br /></script><br />
<script type="text/javascript" language="javascript"><br />
$(document).ready(function() {<br />
var elem = $('.spanClass1').get();<br />
alert(elem.length);<br />
alert("Text box elements " + $('input[type=text]').get().length);<br />
if (elem.length > 0)<br />
{<br />
var elem1 = $(elem[0]).prev('input[type=text]');<br />
$(this).scrollTop($(elem1).position().top);<br />
$(elem1).css('background-color','red');<br />
$(elem1).focus();<br />
}<br />
});<br />
</script><br />
</head><br />
<body><br />
<br /><br />
<div><br />
<input type="text" id="text1" value="test" class="selected"><br /><span id="elem4" class="sClass1"><br /> </span><br /><span id="elem5" class="spanClass1"><br />This is a test</span><br /><br /><br />
</div><br />
</body><br />
</html>
提前致谢。
此致 KARTHIK
答案 0 :(得分:2)
致电.prev()
仅返回之前的元素,而不是其他元素。
您希望 .prevAll()
致电:
var elem1 = $(elem[0]).prevAll('input[type=text]');
答案 1 :(得分:0)
您需要使用。prevAll()
代替.prev()