我的代码如下:
<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')
,但它没有用。
由于
答案 0 :(得分:2)
根据评论,由于this
引用了您的<input>
元素,因此您需要转到.parent()
<div>
,然后转到之前的兄弟{{3} },像这样:
$(this).parent().prev("div.tag");
.prev()
仅适用于兄弟元素,而您所追求的<div>
不是兄弟姐妹,而是父母的兄弟......所以你只需要先遍历那个。
答案 1 :(得分:1)
如果this
是div.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);
});