Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript prev-我可以在上一个之前获取实例吗?_Javascript_Jquery_Dom_Gridview - Fatal编程技术网

Javascript prev-我可以在上一个之前获取实例吗?

Javascript prev-我可以在上一个之前获取实例吗?,javascript,jquery,dom,gridview,Javascript,Jquery,Dom,Gridview,我有一个jQuery“each”函数,它在gridview中循环。每次遇到合适的情况时,它都会创建一个新的头并向其中添加一个css类: $(this).before('<tr><td></td><td></td><td></td><td></td><td></td></tr>'); $(this).prev().addClass('cd_header')

我有一个jQuery“each”函数,它在gridview中循环。每次遇到合适的情况时,它都会创建一个新的头并向其中添加一个css类:

$(this).before('<tr><td></td><td></td><td></td><td></td><td></td></tr>');
$(this).prev().addClass('cd_header');
$(this).before(“”);
$(this.prev().addClass('cd_头');
我的问题是,我需要根据我创建的上一个头的元素中的值设置这个头的一些属性。因此单个.prev()不起作用;它只是读取我刚刚创建的头的属性

有没有办法告诉prev我想要回那两个实例?或者我可以以某种方式堆叠.prev().prev()

或者我可以以某种方式堆叠.prev().prev()

你当然可以;你可能应该试一下。返回当前集合中每个元素的前一个同级元素的集合;没有理由你不能要求
prev
再做一次,然后再返回一次

另一个选项是
.prevAll('some-selector')。first()
(后跟),其中
some-selector
是一个选择器,它将标识您要查找的前一个同级。它查找与选择器匹配的所有以前的同级,然后将第一个同级(由
prevAll
保证)取为最接近开始位置的同级。这样就不会那么脆弱了(例如,如果您在某个时候将东西更改为插入两个
tr
s,而不是一个,它将继续工作)

或者我可以以某种方式堆叠.prev().prev()

你当然可以;你可能应该试一下。返回当前集合中每个元素的前一个同级元素的集合;没有理由你不能要求
prev
再做一次,然后再返回一次


另一个选项是
.prevAll('some-selector')。first()
(后跟),其中
some-selector
是一个选择器,它将标识您要查找的前一个同级。它查找与选择器匹配的所有以前的同级,然后将第一个同级(由
prevAll
保证)取为最接近开始位置的同级。这样就不那么脆弱了(例如,如果你在某个点上更改了东西,插入两个而不是一个,它会继续工作)。

我认为你需要做的是将注入的html分配给一个对象,并获得prev。因此,您将获得两个prev

var $row = $('<tr><td></td><td></td><td></td><td></td><td></td></tr>')
$(this).before($row);
$row.prev().addClass('cd_header');
var$row=$(“”)
$(此)。在($行)之前;
$row.prev().addClass('cd_头');
或更短

$('<tr><td></td><td></td><td></td><td></td><td></td></tr>').insertBefore($(this)).prev().addClass('cd_header');
$('').insertBefore($(this)).prev().addClass('cd_头');

我认为您需要做的是将注入的html分配给一个对象,并获得prev。因此,您将获得两个prev

var $row = $('<tr><td></td><td></td><td></td><td></td><td></td></tr>')
$(this).before($row);
$row.prev().addClass('cd_header');
var$row=$(“”)
$(此)。在($行)之前;
$row.prev().addClass('cd_头');
或更短

$('<tr><td></td><td></td><td></td><td></td><td></td></tr>').insertBefore($(this)).prev().addClass('cd_header');
$('').insertBefore($(this)).prev().addClass('cd_头');

嗯,我确实试过了,但总是出错。我会继续研究我的语法。谢谢。嗯,我确实试过了,但我总是出错。我会继续研究我的语法。非常感谢。