小编Cer*_*rus的帖子

javascript"小于"if语句失败

这是我的功能:

function reCalculate(i) {
    document.getElementById("Q" + i).value = document.getElementById("C" + i).value - document.getElementById("QA" + i).value;

    if (document.getElementById("Q" + i).value < 0) {
        document.getElementById("Q" + i).value = 0;
    }
    if (document.getElementById("Q" + i).value < document.getElementById("E" + i).value && document.getElementById("Q" + i).value != 0) {
        alert(document.getElementById("Q" + i).value + " is less than " + document.getElementById("E" + i).value + "?");
        document.getElementById("Q" + i).value = document.getElementById("E" + i).value;
    }
    document.getElementById("Q" + i).value = Math.ceil(document.getElementById("Q" + i).value);
}
Run Code Online (Sandbox Code Playgroud)

它检查Q,如果它小于0,则使其为0.然后,如果它不是0,但它小于E,则使其成为E.由于某种原因,此功能起作用,除非Q是一个两位数字.

例如,如果Q为7且E为2,则它将Q保留为7.但是,如果Q为10且E为2,则由于某种原因它认为10 <2,并且它将Q更改为2!

我在这里遗漏了什么?

javascript if-statement

3
推荐指数
1
解决办法
6657
查看次数

如今,无限循环的JavaScript会使浏览器崩溃吗?

我正在学习JavaScript并且在编程方面很新,并且碰巧落在这些无限循环上,这些循环被认为是永远存在并且崩溃浏览器,但是当我用这些代码创建一个时:

i=0;
while (i<10) {document.write(i);}
Run Code Online (Sandbox Code Playgroud)

浏览器只是继续加载它,从来没有,但浏览器没有崩溃?
那么现在的浏览器是否足以承受无限循环,或者我需要一个不同的无限循环?

javascript infinite-loop

3
推荐指数
1
解决办法
5961
查看次数

如何覆盖jquery中的现有函数

这是所有js的默认值

getEditor: function(){
    $( '#datatableEditor' ).remove();
    var editor = $( '<div id="datatableEditor" class="popupEditor"/>' );
    $( 'body' ).prepend( editor );

    var dialog = $(editor).dialog({
        title: 'Edit item',
        modal: true,
        width: 'auto',
        height: 'auto'
    });
Run Code Online (Sandbox Code Playgroud)

现在我正在写另一个js.我需要覆盖getEditor我的js ...

javascript jquery javascriptmvc

3
推荐指数
2
解决办法
2万
查看次数

将变量分配给 document.getElementById().Innerhtml 不起作用

请参阅下面的代码:

var text=["yuppie", "kkkoseh", "watchdog"];

var messageIndex=0;

function looptext (){
    var MessageElement= document.getElementById("happy").innerHTML
    var Message=text[messageIndex];

    MessageElement=Message;
    messageIndex++;

    if(messageIndex>=text.length){
        messageIndex=0;
    }
}

window.onload = function() {
    setInterval(looptext, 1000);
};
Run Code Online (Sandbox Code Playgroud)

它不起作用。

但是当我删除.innerhtmlat 变量MessageElement并设置 时MessageElement.innerHtml= Message,它起作用了。

为什么会这样?
抱歉,我是学习 JavaScript 的新手。

javascript

3
推荐指数
1
解决办法
1万
查看次数

mustache.js无法正常工作

我尝试使用mustache.js进行模板化,但我的基本代码不起作用请帮助我出错的地方 -

var person = {
    firstName: "Christophe",
    lastName: "Coenraets"
};

var template = "<h1>{{firstName}} {{lastName}}</h1>";
var output = Mustache.render(template, person);
document.getElementById('result1').innerHTML = output;
Run Code Online (Sandbox Code Playgroud)

上面的代码正在运行,但下面的代码不起作用: -

这一行写在我的.html页面中:

<script id="sample_template" type="text/template">
    <h1>{{firstName}} {{lastName}}</h1>
</script>
Run Code Online (Sandbox Code Playgroud)

这一行写在我的.js文件中:

var data ={
   firstName: "Christophe",
   lastName: "Coenraets"
};
var template = $('#sample_template').html();
//console.log(template);  this prints the html content in console
var info = Mustache.to_html(template, data);
$('#result1').html(info);  
Run Code Online (Sandbox Code Playgroud)

javascript jquery mustache

3
推荐指数
1
解决办法
3342
查看次数

数据属性的总和

如何在jquery中获取HTML5数据属性的总和?例如,当检查一个和两个时,值必须为15,当没有检查时,值等于0.

$('.price').html(parseInt($(this).attr('data-price')));
Run Code Online (Sandbox Code Playgroud)

HTML:

<input class="checkbox" id="one" type="checkbox" checked data-link="111" data-price="10">one<br />
<input class="checkbox" id="two" type="checkbox" checked data-link="222" data-price="5">two<br />
<input class="checkbox" id="three" type="checkbox" checked data-link="333" data-price="2">three<br />
<a href="111,222,333">link</a>
<span class="price">17</span>
Run Code Online (Sandbox Code Playgroud)

javascipt的:

$('.checkbox').on("change", function() {
    var links = [];//array for links
    $('.checkbox').filter(":checked").each(function() {
        links.push($(this).attr('data-link'));//get links

        //sum of all price values of this into price
        $('.price').html(parseInt($(this).attr('data-price')));
    });

    $("a").attr("href", links.join(",")); // change link
});
Run Code Online (Sandbox Code Playgroud)

小提琴

javascript jquery

3
推荐指数
1
解决办法
3289
查看次数

使用EXIF和BinaryFile会出错

我正在尝试使用input[type='file']移动网络浏览器在拍摄照片后在画布中使用正确的方向绘制照片我正在使用:

fileReader.onloadend = function() {
    var exif = EXIF.readFromBinaryFile(new BinaryFile(this.result));

    switch(exif.Orientation){
       case 8:
           ctx.rotate(90*Math.PI/180);
           break;
       case 3:
           ctx.rotate(180*Math.PI/180);
           break;
       case 6:
           ctx.rotate(-90*Math.PI/180);
           break;
    }
};
Run Code Online (Sandbox Code Playgroud)

但我明白了:TypeError: First argument to DataView constructor must be an ArrayBuffer

我怎样才能得到这个数组缓冲区?

我正在使用EXIF.js和BinaryFile.js

javascript exif filereader

3
推荐指数
1
解决办法
6005
查看次数

为什么使用innerHTML比JQuery的append()函数更慢地将大量元素附加到DOM?

我有一个vanilla JavaScript函数来测试向DOM添加大量元素:

var start = new Date().getTime();
var blah;
var div = document.getElementById("me");
for (i = 0; i < 5000; ++i) {
    div.innerHTML += "<div>" + i + "</div>";//Simply add to div.
}
var end = new Date().getTime();
var time = end - start;
alert('Execution time: ' + time);
Run Code Online (Sandbox Code Playgroud)

结果:

         Chrome           IE10
         ------           -----  
Vanilla      39             130  (seconds)
Run Code Online (Sandbox Code Playgroud)

JQuery的:

for (i = 0; i < 5000; ++i) {
    $("#me").append("<div>" + i + "</div>");//Now using append instead.
}
Run Code Online (Sandbox Code Playgroud)

结果

         Chrome           IE10 …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

3
推荐指数
2
解决办法
3082
查看次数

按子属性对对象数组进行分组

我有一个对象,其中包含从以下 JSON 加载的对象数组:

"accounts": [
{
  "name": "aa",

  "branch": {
        "id": 1
  }
}

{
  "name": "bb",

  "branch": {
        "id": 1
  }
}

{
  "name": "cc",

  "branch": {
        "id": 2
  }
}
]
Run Code Online (Sandbox Code Playgroud)

我想按分支 ID 对它们进行分组。如果我按“集合”分组,我只需这样做:

groupMap= _.groupBy(object, 'set');
Run Code Online (Sandbox Code Playgroud)

第一个和最后一个对象被分组在一起。但是我如何按属性的属性进行分组呢?

javascript underscore.js

3
推荐指数
1
解决办法
4018
查看次数

如果IE标签不适用于IE11

我有一个数量框的脚本,您可以在其中添加或删除项目.

然而,它在IE中不起作用可能是因为锚标签内部有一个按钮,我想要做的是使用将在用户使用IE时使用的onClick函数.

这样做,我想,但我发现这不适用于IE11.

有人知道解决方法吗?我只想在使用IE时使用onClick函数,因为数量框在其他浏览器中工作正常.

<!--[if lt IE 11]>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

如果它对任何人有帮助,这就是我所说的代码在IE中不起作用.

<a href="?del='.$key.'" class="minus" >
    <input type="button" class="minus" value="-" id="min">
</a>

<input type="text" class="input-text qty text" title="Qty" value="'.$value.'" name="quantity" min="1" step="1">

<a href="?add='.$key.'" type="button" class="plus">
    <input  type="button" class="plus" value="+">
</a>
Run Code Online (Sandbox Code Playgroud)

html javascript internet-explorer

3
推荐指数
2
解决办法
1672
查看次数