- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写这个函数是为了使列可排序。我想根据与特定订单号关联的 div 重新排列。它在 Chrome 和 Firefox 中工作正常,但由于某种原因,在 IE8 中,所有内容都消失了,而不是在函数末尾将所有重新排列的内容附加到 #current_orders_content2
div 中。该函数在 JSlint 中检查(通过 jsfiddle),令人好奇的是,查看最后的所有值(通过 IE 控制台),一切看起来都很好 — 值正是我所期望的。看起来 append()
失败了。所以我用 .html()
、appendTo
进行了测试,但仍然没有任何乐趣。如果我向它传递一个 html 字符串,它就可以工作,但是对于这些 jquery 对象,它会失败。
关于为什么或如何让它发挥作用有什么想法吗?
谢谢!
$('.sortable').click(function () {
"use strict";
if ($(this).hasClass('sortable_numeric')) {
/*
*function sets ascending/descending classes
*for formatting, placement of arrow_up.png, arrow_down.png
*returns the sort order to be used below "asc" or "desc"
*/
var sort_order = sort_class_distribution($(this));
var current_val = "";
var order_number = "";
/*
*determine what column is being sorted
*remove the "_header" text from the id to
*get this information
*/
var sort_column = this.id;
sort_column = sort_column.replace("header_", "");
/*
*append "_div" to the end of the string to get
*the class of the divs we are sorting by
*/
sort_column += "_div";
var valuesArr = [];
$('.' + sort_column).each(function () {
var current_val = $.trim($(this).text());
current_val = parseInt(current_val, 10);
valuesArr.push(current_val);
});
var sorted = [];
if (sort_order == "asc") {
sorted = valuesArr.slice(0).sort(sortA);
} else if (sort_order == "desc") {
sorted = valuesArr.slice(0).sort(sortD);
}
/*
* for each item in this array, get the parent div
* with the class order_and_lines_container_div.
*
* push it into an array of its own to to put back
* onto the page in the order of the sorted array
*/
var containerArr = [];
var current_container = "";
var c = 0;
for ( c = 0; c <= sorted.length; c++ ) {
current_container = $('#order_container_' + sorted[c]);
containerArr.push(current_container);
}
$('#currentOrdersContent2').html('');
for ( c = 0; c <= sorted.length; c++ ) {
$('#currentOrdersContent2').append(containerArr[c]);
}
}
});
最佳答案
我不知道这是否是问题所在,但你的循环超出了范围。
这个...
for ( c = 0; c <= sorted.length; c++ ) {
应该是这个...
// -----------v---constrain to indices less than sorted.length
for ( c = 0; c < sorted.length; c++ ) {
此外,您似乎使用了比此类所需更多的代码。
<小时/>这是您稍微修改过的代码...
$('.sortable').click(function () {
"use strict";
if ($(this).hasClass('sortable_numeric')) {
var sort_order = sort_class_distribution($(this)),
sort_column = this.id.replace("header_", "") + "_div",
content2 = $('#currentOrdersContent2');
var sorted = $('.' + sort_column).map(function () {
return parseInt($(this).text(), 10);
})
.toArray()
.sort(sort_order == "asc" ? sortA : sortD);
$.each(sorted, function(i, item) {
content2.append($('#order_container_' + item));
});
}
});
一些更改是...
删除了一堆不必要的变量声明(隐藏或未使用)
使用了.map()
。这只是迭代元素,并将您提供的任何内容作为返回值放入新的 jQuery 对象中,因此您最终会得到一个充满数字的 jQuery 对象。
摆脱了 $.trim()
因为 parseInt
忽略前导/尾随空格
使用.toArray()
将新的 jQuery 对象转换为实际的数组。
立即调用 .sort()
并将返回值分配给变量,因为它返回相同的数组,尽管已修改。
此时,只需执行每个项目的 .append()
即可。追加时,元素会从原来的位置移除,并放置到新的位置,因此不需要缓存和清除元素。
.map().toArray().sort()
只是方法链。 .map()
返回新的 jQuery 对象,如上所述。对该对象调用 .toArray()
并返回一个数组。在该数组上调用 .sort()
,并返回相同的数组,该数组被分配给变量。
这部分sort_order == "asc"? sortA : sortD
是一个条件运算符,类似于 if...else
的简写。基本上,如果条件为真,则返回 sortA
,否则返回 sortD
。
关于javascript - IE8 无法 .append() jquery 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11146889/
Racket 的 pict , 有几个 combinators for combining other pictures .这些文档包含一个很好的表格,说明其 *-append 组合器的工作方式: 这
我看过 Insert content into iFrame和他们的 fiddle http://jsfiddle.net/8VP4y/3/提出以下我遇到问题的代码。 我已经为下面的问题创建了一个 j
我有一个显示非常奇怪结果的微基准: @BenchmarkMode(Mode.Throughput) @Fork(1) @State(Scope.Thread) @Warmup(iterations =
我想知道是否有人可以回答我使用 StringBuilder 对象在 java 中执行这些语句中的哪一个会更好: 使用 .append(string1 + string 2) 对比 .append(st
假设我有两个相同类型的流。是否可以将一个流 append 到另一个流而无需事先将它们转换为列表? 例子: Stream ms = ...; Stream ns = ...; return ms.app
我有以下有效的 jQuery 代码,但它让我思考是否可以对正在 append 的内容执行 append 操作,而无需指定我想要 append 的内容。 append().append() 并没有达到目
这是为了显示诊断页面的检查。我有一个 .append(not_ok) 但当 swf 文件加载 100% 时,我想删除 not_ok 附加,然后添加一个 .append(ok)。 function ca
x = [[1,2],[2,3],[10,1],[10,10]] def duplicatingRows(x, l): severity = x[l][1] if severity =
我有一个列表,我正在尝试将数据注入(inject)其中。列表如下所示 data2 = ['TECH2_HELP', 'TECH2_1507', 'TECH2_1189', 'TECH2_4081',
为了有效地进行一些 DOM 操作,我分离了一个元素。在这个过程中,我遇到了一个有趣的情况: var $holder = $("#d"); var $wrapper = $("").css("borde
我遇到了图片在移动设备上加载速度不够快的问题。我的元素有一个图像和一个按钮。单击该按钮时,图像向下滑动,另一幅图像从顶部滑动以取代它。这是代码 html CSS .moveF
我正在编写一个包含 10 个遗愿 list 的简单哈希表。使用内置的 hash() 计算索引,然后对表大小取模。但是,当我尝试将该对象 append 到该索引处的存储桶列表时,它会 append 到每
我是 LISP 的新手,我正在尝试处理类的 cond 语句。目前,我正在尝试检查传递的值是否为列表,如果是,则将字母 d append 到列表中。 这是我的代码: (defun test(L) (li
我正在使用 Jquery 将数据 append 到 div。但是,append 语句之后页面上没有显示任何内容。 我尝试使用 $(window).load 来确保页面已加载,但这仍然不起作用。 HTM
我有以下代码; function SetupDropdowns() { var PrevType; dropdown1 = document.getElemen
我想在 smarty 中创建一个数组并在其中执行 append 功能!就像我在 smarty 模板中声明一个变量(如 {assign var=sizearr value=''} )然后我想在循环中向其
请考虑以下代码片段: var ul = $(".list_b").find("li").remove().end(); $.each(Sites, functi
我的日志记录配置中有两个 appenders。其中之一在 ERROR 事件上发送电子邮件。 一个类,我无法控制,垃圾邮件 ERROR 消息。所以我仍然想要那些消息,但不是在两个 appenders 中
我正在尝试制作 editText,我要在其中插入一些文本。在每三个字符之后,我想插入破折号。 例子: 类型:123 结果:123- 现在当光标在破折号后面并且你按下删除键时,我想删除破折号和破折号
当我尝试 append 简单的“hello”时,它会被 append ,但很快就会自动删除。仅当我在下面给出的表单中使用它时,才会出现此问题,如果删除该表单,则不会出现问题,并且 hello 会正确
我是一名优秀的程序员,十分优秀!