jQuery - 在具有特定CSS类的span标记之前选择一个文本框

时间:2010-06-05 03:57:05

标签: jquery jquery-selectors

我是jQuery的初学者。如果有人可以帮助我,那将是很棒的。我不确定这里出了什么问题。

这就是我想要的。我有一个类为“spanClass1”的元素。在此元素之前,还有另一个元素和一个文本框元素。我的要求是滚动到该文本框元素并获得焦点元素。此外,我还添加了一些css来了解发生的变化。但问题是上面的代码似乎不起作用。如果我将.prev(..)中的选择器替换为'span',它就可以工作。我错过了什么吗?如果有人可以帮助我,那将是非常有帮助的。

<html><br />
&lt;head&gt;<br />
&lt;title&gt;<br />jQuery&lt;/title&gt;<br />
&lt;script type="text/javascript" language="javascript" src="jquery.js"&gt;<br />&lt;/script&gt;<br />
&lt;script type="text/javascript" language="javascript"&gt;<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 &gt; 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 />
&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
 &lt;br /&gt;<br />
 &lt;div&gt;<br />
 &lt;input type="text" id="text1" value="test" class="selected"&gt;<br />&lt;span id="elem4" class="sClass1"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/span&gt;<br />&lt;span id="elem5" class="spanClass1"&gt;<br />This is a test&lt;/span&gt;<br />&lt;br /&gt;<br />
 &lt;/div&gt;<br />
&lt;/body&gt;<br />
</html>

提前致谢。

此致 KARTHIK

2 个答案:

答案 0 :(得分:2)

致电.prev()仅返回之前的元素,而不是其他元素。

您希望 .prevAll() 致电:

var elem1 = $(elem[0]).prevAll('input[type=text]');

答案 1 :(得分:0)

您需要使用。prevAll()代替.prev()