如何使用jQuery识别我需要的选择器?

时间:2011-03-25 01:59:42

标签: jquery-selectors

我的代码如下:

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

我想直接在<div class="tag">元素之前选择(并应用一些css)<div class="data">元素。我如何使用jQuery定义该选择器。我已经尝试了$(this).prev('div .tag'),但它没有用。

由于

4 个答案:

答案 0 :(得分:2)

根据评论,由于this引用了您的<input>元素,因此您需要转到.parent() <div>,然后转到之前的兄弟{{3} },像这样:

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

.prev()仅适用于兄弟元素,而您所追求的<div>不是兄弟姐妹,而是父母的兄弟......所以你只需要先遍历那个。

答案 1 :(得分:1)

如果thisdiv.data元素,只需从选择器中删除空格(或完全取消选择器):

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

...或者如果你需要从DOM中选择,你可以这样做:

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

答案 2 :(得分:0)

你试过吗

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

这可以追溯到什么'这'就像尼克说的那样。

答案 3 :(得分:0)

由于具有类'tag'的'div'是具有类'data'的'div'的兄弟,因此您可以使用'siblings()'方法:

$(function(){

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

    console.log(previousElement);

});​

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