2011-03-25 28 views
0

我有代碼看起來像這樣:如何使用jQuery來識別我需要的選擇器?

<div class="tag">Order # :</div> 
<div class="data"> 
<input type="text" name="oemTeo[<?=$o;?>]" id="o_oemTeo[<?=$o;?>]" value="<?=$vrow['oemTeo'];?>" /> 
</div> 

我想選擇(並應用一些CSS到)<div class="tag">元素<div class="data">元素之前直接。我將如何使用jQuery定義該選擇器。我試過$(this).prev('div .tag'),但沒有奏效。

感謝

+0

代碼中的「this」是什麼? – 2011-03-25 02:09:06

+0

'this'實際上是'input'元素。 – DevlshOne 2011-03-25 02:15:48

回答

2

根據意見,因爲this指的是你<input>元素,你需要去.parent()<div>纔去上一個兄弟與.prev(),像這樣的:僅在兄弟

$(this).parent().prev("div.tag"); 

.prev()作品元素,而你所追求的<div>不是兄弟姐妹,而是父母的兄弟姐妹......所以你只需要首先遍歷。

+0

非常好,謝謝!像魅力一樣工作。 – DevlshOne 2011-03-25 02:22:59

1

如果thisdiv.data元素,只是刪除您選擇的空間(或完全消除選擇):

$(this).prev('div.tag'); 

...或者,如果您需要選擇從DOM,你可以這樣做:

$('div.tag + div.data').prev(); 
0

你有沒有嘗試

$('div.data')。prev().css('background-color','red');

這回過頭來搞清楚這是什麼樣的尼克說。

0

由於「格」帶班「標記」是「格」帶班「數據」,你可以使用的兄弟姐妹()'兄弟姐妹方法:

$(function(){ 

    var previousElement = $('div.data').siblings('div.tag'); 

    console.log(previousElement); 

});​ 

小提琴鏈接:http://jsfiddle.net/jAnS8/1/