Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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 jQuery find()函数在不同的页面上返回不同类型的结果_Javascript_Jquery - Fatal编程技术网

Javascript jQuery find()函数在不同的页面上返回不同类型的结果

Javascript jQuery find()函数在不同的页面上返回不同类型的结果,javascript,jquery,Javascript,Jquery,我的网站上有一个带有搜索功能的标题栏。 我实现的功能之一涉及查找结果并调整包含结果的框的大小 有一个页面的标题栏“我的功能”工作得非常好: $(".suggestionCategory").each(function() { $(this).find(".suggestionCategoryName").outerHeight($(this).find(".suggestionCategoryValues").height()); }); 但在另一个示例中,我收到以下错误消息:

我的网站上有一个带有搜索功能的标题栏。 我实现的功能之一涉及查找结果并调整包含结果的框的大小

有一个页面的标题栏“我的功能”工作得非常好:

$(".suggestionCategory").each(function() {
        $(this).find(".suggestionCategoryName").outerHeight($(this).find(".suggestionCategoryValues").height());
});
但在另一个示例中,我收到以下错误消息:

未捕获的TypeError:无法读取未定义的属性“height”

经过破坏和检查,我可以看到的结果

$(this).find(".suggestionCategoryValues")
返回非常不同的东西。在功能正常的页面上:

$(this).find(".suggestionCategoryValues")
评估结果为:

[
<div class=​"suggestionCategoryValues">​…​</div>​
]
[
b.fn.b.init[1]
  0: div.suggestionCategoryValues
  context: div.suggestionCategoryValues
  length: 1
  __proto__: Object[0]
]
为什么会这样?我做错了什么

编辑:

首先-我不想知道如何修复它-我已经有了一个解决方法(做一个内部foreach并将大小合计为$(“.suggestionCategoryValues”).height()

但我很好奇为什么它们不同

HTML是相同的,我相信,但我会张贴的标记,以防我是一个白痴。 这是“断开”页面的标记:


公司
XXXX
YYYY
ZZZZ
接触
AAAA
BBBB
中交
DDDD
这是“工作”页面的标记:


公司
XXXX
YYYY
ZZZZ
接触
AAAA
BBBB
中交
DDDD
正如您所看到的,“工作”页面成功地应用了高度。

我认为这是因为“this”不是您所期望的,请尝试将其存储在一个变量(称为category)中,如下所示:

$(".suggestionCategory").each(function() {
  var category = $(this);       
  var height = category.find(".suggestionCategoryValues").height();
  category.find(".suggestionCategoryName").outerHeight(height);
});

当做一些测试时,我不知道你为什么会这样做

.find(“.suggestionCategoryName”).outerHeight($(this.find(.suggestionCategoryValues”).height();

当我测试outerHeight中的参数时,与将其设置为
outerHeight(true);

//其他方法

var suggestCat = $('.suggestionCategory'),i;
for(i=0;i<suggestCat.length;i++){
   var indexCat = suggestCat[i];
   $(indexCat).find('.suggestionCategoryName').outerHeight(true);
   }
var suggestCat=$('.suggestionCategory'),i;
对于(i=0;i试试这个

$(".suggestionCategory").each(function() {
  var suggestionCategory = $(this);       
  suggestionCategory.find(".suggestionCategoryName").outerHeight(suggestionCategory.find(".suggestionCategoryValues").height());
});

哇-这是一个如此琐碎的东西很多努力。 在“破损”页面上,我还包括了一个名为moorainbow的东西。一个与mooTools一起工作的颜色选择器。我所包含的版本大约有7年历史,出于某种原因,它以一种难以察觉的方式干扰了jQuery


可能将jQuery置于无冲突模式可以解决这个问题,这可能是最好的做法,但需要将$重新分解到jQuery中。因此,我只是从页面中删除了mooRainbow,瞧,问题解决了,两个页面的行为都相同。

在这两种情况下,
这是什么这是每个(function(){})迭代的结果-我将编辑问题以使其更清晰。您是否在
ready
上运行它们?这看起来非常危险:$(“.suggestionCategory”)。查找…我将重写它$(“#headerBarid”)。查找(“.suggestionCategory”)..使用级别容器的ID,以防页面上的其他地方有其他suggestionCategory元素。不,它们是由事件触发的(实际上是少数事件之一)我需要设置suggestionCategoryname元素的外观,因为有填充和边距。请查看我的编辑,了解我为什么不寻找修复,而是寻找一个解释。@Mattfrows这可能看起来是
。SuggestionCategoryValue
可能不存在于其他页面中。您可以尝试执行
。suggestionValue
吗?或者这也不存在这不是你想要的。只是想找出另一页上未定义的问题。正如我在对问题的编辑中所述,(相关?)标记是相同的。所谓相关,我指的是我在“断开”页上引用jquery的标记:TypeError:无法使用“in”操作符在未定义中搜索“height”
$(".suggestionCategory").each(function() {
  var category = $(this);       
  category.find(".suggestionCategoryName").outerHeight(true);
 });
var suggestCat = $('.suggestionCategory'),i;
for(i=0;i<suggestCat.length;i++){
   var indexCat = suggestCat[i];
   $(indexCat).find('.suggestionCategoryName').outerHeight(true);
   }
var suggestCat = $('.suggestionCategory'),i;
for(i=0;i<suggestCat.length;i++){
   var indexCat = suggestCat[i];
   $(indexCat).height(function(ele,index){
     return this.find('.suggestionCategoryName').height();
    });
   }
$(".suggestionCategory").each(function() {
  var suggestionCategory = $(this);       
  suggestionCategory.find(".suggestionCategoryName").outerHeight(suggestionCategory.find(".suggestionCategoryValues").height());
});