如果您已经使用过任何长度的JavaScript,那么您就知道Internet Explorer没有为Array.prototype.indexOf()[包括Internet Explorer 8]实现ECMAScript函数.这不是一个大问题,因为您可以使用以下代码扩展页面上的功能.
Array.prototype.indexOf = function(obj, start) {
for (var i = (start || 0), j = this.length; i < j; i++) {
if (this[i] === obj) { return i; }
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
我什么时候应该实现这个?
我应该使用以下检查将其包装在我的所有页面上,检查是否存在原型函数,如果不存在,请继续并扩展Array原型?
if (!Array.prototype.indexOf) {
// Implement function here
}
Run Code Online (Sandbox Code Playgroud)
或者浏览器检查,如果它是Internet Explorer,那么只需实现它?
//Pseudo-code
if (browser == IE Style Browser) {
// Implement function here
}
Run Code Online (Sandbox Code Playgroud) javascript internet-explorer cross-browser internet-explorer-8
我有一个文本框,其中包含一个货币字符串,然后我需要将该字符串转换为double以对其执行某些操作.
"$1,100.00" → 1100.00
这需要在所有客户端发生.我别无选择,只能将货币字符串作为货币字符串作为输入,但需要将其转换/转换为double以允许一些数学运算.
所以我一直在探索不同的方法来清理和测试我的JavaScript.我认为就像任何其他语言一样,改善的一种方法就是阅读好的代码.jQuery非常受欢迎,所以它必须具有一定程度的良好编码.
那么为什么当我通过JSLint的验证运行jQuery时,它给了我这样的信息:
错误:
第18行的问题字符5:预期标识符,而不是"未定义"(保留字).
不确定的,
第24行问题27:缺少分号.
jQuery = window.jQuery = window.$ = function(selector,context){
第24行的问题28:预期的标识符,而不是'='.
jQuery = window.jQuery = window.$ = function(selector,context){
第24行问题28: 停止,无法继续.(扫描0%).
我大部分是ASP.NET和C#的开发人员.我将变量命名为小写,我的方法以大写开头.但我研究的大多数javascript示例都有以小写字母开头的函数.为什么会这样,这有关系吗?
function someMethod() { alert('foo'); }
Run Code Online (Sandbox Code Playgroud)
VS
function SomeMethod() { alert('bar'); }
Run Code Online (Sandbox Code Playgroud) 我在这个html上面有一个JavaScript有没有办法在下面的代码中将它传递到EditBanner(JS Variable Here)中?
//EditBanner to be changed to pass a Js variable.
<input id="EditBanner" type="button" value="Edit Image" onclick="EditBanner();"/>
Run Code Online (Sandbox Code Playgroud) 我正在将内部应用程序转换为通过jQuery使用更多Ajax.我正在摆脱当前ASP.NET应用程序背后的标准代码,并结合将运行客户端的JavaScript方法.我担心的是,允许这个应用程序保持可维护状态的最佳方法是什么.
如果我正在评估两个变量,而不是两个方法调用,那么天气问题我使用"&&"或"&"
//some logic that sets bool values
boolean X = true;
boolean Y = true;
if (X & Y){
// perform some operation
}
if (X && Y){
// perform some operation
}
Run Code Online (Sandbox Code Playgroud)
另外我用于C#3.0/.NET 3.5的书只引用了&&运算符,&运算符会消失吗?
我在ASP.NET页面中使用jqGrid并将数据注入页面上的脚本块,然后从那里加载.对于这一个用例,我们必须立即在屏幕上显示大量数据.涉及300~500条记录,每行30列.对这种情况进行分页并不合适.用户需要能够扫描大量数据,选择40~60行然后移到另一个屏幕.
我不确定这是否适合jqGrid的乞讨,但在原型设计中,一切都运行得足够快.然而,在多选模式下,转向生产会很慢.
我已经把痛点缩小到了jQueryUI 1.8.如果我将其恢复到jQueryUI 1.7,它就足够快了.
jQueryUI 1.7~ 17.htm的例子
jQueryUI 1.8~ 18.htm的例子
注意:示例显示FireFox和IE中的差异最大,Chrome似乎没问题
两个页面都使用最新的jqGrid 3.8并选择了所有选项.
从谷歌CDN加载jQuery和jQueryUI
<base href="http://ajax.googleapis.com/" />
<link href="/ajax/libs/jqueryui/1.8/themes/start/jquery-ui.css" type="text/css" />
<script src="/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"></script>
<script src="/ajax/libs/jqueryui/1.8/jquery-ui.min.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
从我的服务器加载jqGrid JS/CSS
<link type="text/css" href="http://mymx.biz/jqGrid/ui.jqgrid.css" />
<script src="http://mymx.biz/jqGrid/grid.locale-en.js" type="text/javascript"></script>
<script src="http://mymx.biz/jqGrid/jquery.jqGrid.min.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
和我的大型本地数据集
<script src="http://mymx.biz/jqGrid/getGridData.js?v=1" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
数据集中的示例行
var gridData = [
{id:"1",aa:"aa1",bb:"bb1",cc:"cc1",dd:"dd1",ee:"ee1", ff:"ff1",
gg:"gg1", hh:"hh1", ii:"ii1", jj:"jj1", kk:"kk1", ll:"ll1", mm:"mm1", nn:"nn1"},
{...}
];
Run Code Online (Sandbox Code Playgroud)
我的基本jqGrid设置调用
$(function () {
var gridData = getGridData(); // pulls from getGridData.js
setupGrid(gridData);
});
function SelectRow(rowid) {
// I …Run Code Online (Sandbox Code Playgroud) 我最近在javascript文件中快速缩短了一些方法名称,并在转换一个方法名称时遇到了问题:
之前:
RefreshSevenDayGrid(){
// some stuff
}
Run Code Online (Sandbox Code Playgroud)
后:
7Day() {
// some stuff
}
Run Code Online (Sandbox Code Playgroud)
我很快发现javascript不再有效.我从几个人那里听说,数字永远不应该用于方法或类名.这有例外吗?