小编Aar*_*als的帖子

为什么在JavaScript构造函数中使用副作用不好的做法?

我通常在代码中使用与设计模式自定义对象非常相似的东西.

但是JSLint对这样的结构不满意:

function MyClass() { this.init(); }
new MyClass(data);
Run Code Online (Sandbox Code Playgroud)

因为对象在创建后立即被丢弃 - 它不被用于任何东西.我们可以通过将JSLint分配给变量来欺骗JSLint来忽略它,但它并没有改变JSLint(我猜许多JavaScript爱好者)不鼓励这种模式.

那么为什么在JavaScript构造函数中使用副作用被视为一种不好的做法呢?

对于它的价值,我认为这是一个很好的做法,因为:

  1. 您有一个设置功能,因此,如果您正在管理MyClass实例列表以便以后访问,则应该更容易维护.(将一个对象推送到一个数组是一个副作用,你必须在构造函数返回后做这个"良好实践"=更难维护.)
  2. 它有自己的原型,因此是"类所有权":Firebug将其报告为MyClass的实例而不仅仅是Object.(在我看来,这使其优于其他设计模式.)

javascript constructor coding-style

9
推荐指数
1
解决办法
1406
查看次数

如何根据其他列中的值(对于同一行)更新表的所有行中的列?

如果SQL不能以这种方式工作,我会提前道歉,我主要使用C++/C#进行编码,而且我没有太多的SQL经验.我基本上想要遍历表的每一行,并根据其他列更改列值.示例表可能如下所示:

__________________________
|first #|second #|third #|
|_______|________|_______|
|___1___|___1____|___0___|
|___5___|___2____|___0___|
|___3___|___6____|___0___|
|___2___|___4____|___0___|
Run Code Online (Sandbox Code Playgroud)

现在,在伪代码中,我试图得到相当于:

foreach row in mytable, column 3 = column 1 + column 2
Run Code Online (Sandbox Code Playgroud)

什么是获得SQL等价物的方法,或者不能以这种方式完成?

sql sql-update

9
推荐指数
2
解决办法
6679
查看次数

更新数据库中的sql位字段

在一个sql表中,我有一个位字段,值显示为True,当我在代码中更新 Update table1 set Active='True'它进行更新但现在显示的值1代替True.如何将值放在'True'表中而不是整数?谢谢.

sql sql-server ssms

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

占用6个字节的字符

我们正在尝试保存下面的字符串,这实际上是db中的一个名字,我们进行一些api调用,我们得到这个名字:

株式会社エス·ダブリュー·コミュニケーションズ

通过我们的代码保存(如在servlet - hibernate - 数据库中),我们得到一个错误:

Caused by: java.sql.BatchUpdateException: ORA-12899: value too large for column "NAME_ON_ACCOUNT" (actual: 138, maximum: 100)
Run Code Online (Sandbox Code Playgroud)

这是23个字符,但看起来每个字符需要6个字节,这只会使它成为138个字符.

下面的代码给了我69:

byte[] utf8Bytes = string.getBytes("UTF-8");    
System.out.println(utf8Bytes.length);
Run Code Online (Sandbox Code Playgroud)

这给了我92:

byte[] utf8Bytes = string.getBytes("UTF-32");
System.out.println(utf8Bytes.length);
Run Code Online (Sandbox Code Playgroud)

我肯定会检查NLS_CHARACTERSET并查看IO类,但你有没有看到一个占用6个字节的字符?任何帮助都感激不尽.

java oracle character-encoding

6
推荐指数
1
解决办法
275
查看次数

从Internet Explorer 8打印时,我需要为不透明度设置哪种css样式?

我制作了一个由两个重叠图像组成的网页.我已将不透明度滤镜应用于顶部图像,以便两个图像都可读.大多数浏览器(包括IE和Firefox)的屏幕不透明度都是正确的.但是,当我从IE 7或8版本打印到真实打印机或PDF打印机时,只打印顶部图像.从IE 9和Firefox打印时,顶部图像是正确半透明的.

以下是我的网页代码.

<html>
<body>
<DIV style="POSITION: absolute; WIDTH: 366px; HEIGHT: 439px; TOP: 100px; LEFT: 100px; Z-INDEX: 1;">
    <IMG style="POSITION: relative; WIDTH: 366px; HEIGHT: 439px;" src="below_picture.png">
</DIV>
<DIV style="POSITION: absolute; WIDTH: 366px; HEIGHT: 439px; TOP: 100px; LEFT: 100px; Z-INDEX: 390;">
    <IMG style="POSITION: relative; WIDTH: 366px; HEIGHT: 439px; FILTER: alpha(opacity=75);" src="above_picture.png">
</DIV>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

从Internet Explorer 8打印时,我需要为不透明度设置哪种css样式?

css printing opacity internet-explorer-8

5
推荐指数
2
解决办法
1677
查看次数

我循环一个数组并修改数组的内容,但我没有得到我期望的结果.

我循环一个数组并修改数组的内容,但我没有得到我期望的结果.我错过了什么或做错了什么?

我有两组div(一组有攻击者,另一组有敌人),每组有三个元素.我试图通过在它周围做一个边框从每一侧选择一个元素.现在我想将攻击者的类别转换为敌人,反之亦然.但是当我使用for循环时,它会以某种方式忽略某些元素并仅更改一个或两个div类.这是我的代码:

HTML:

<div id="army1">
    <div class="attacker">
        <img src="img/Man/Archer.jpg" />
        <div class="hp"></div>
    </div>
    <br><div class="attacker">
        <img src="img/Man/Knight.jpg" />
        <div class="hp"></div>
    </div>
    <br><div class="attacker">
        <img src="img/Man/Soldier.jpg" />
        <div class="hp"></div>
    </div>
    <br>            
</div>

<div id="army2">
    <div class="enemy">
        <img src="img/Orcs/Crossbowman.jpg" />
        <div class="hp"></div>
    </div>
    <br><div class="enemy">
        <img src="img/Orcs/Mine.jpg" />
        <div class="hp"></div>
    </div>
    <br><div class="enemy">
        <img src="img/Orcs/Pikeman.jpg" />
        <div class="hp"></div>
    </div>
    <br>            
</div>
Run Code Online (Sandbox Code Playgroud)

我的javascript代码:

var attacker = document.getElementsByClassName('attacker');
var enemy = document.getElementsByClassName('enemy');


var button = document.getElementById("fight");

// var class1 = document.getElementsByClassName("first")[0].getAttribute("class");
// class1 = …
Run Code Online (Sandbox Code Playgroud)

html javascript css loops

5
推荐指数
1
解决办法
102
查看次数

删除选择的焦点

我的问题可能很愚蠢,但我想知道是否有机会改变这种行为.

我注意到当你点击选择标签的箭头打开下拉列表的选项时,当你指向一个选项时,它会以蓝色背景突出显示,这没关系.

但是在IE中,当您单击要选择的选项并且它成为所选选项时,蓝色突出显示将保持不变,直到您单击选择标记之外的其他位置(在Firefox中不是那样).我知道我应该做什么,并在选择了一个选项后从元素中删除焦点.

$('select').change(function() {
    $(this).blur();
})
Run Code Online (Sandbox Code Playgroud)

但仍然存在一个小问题 - 如果选择的选项与前一个相同(例如我连续两次选择一个元素),焦点将保持选择状态,蓝色突出显示再次亮起.有没有办法改变这一点

html javascript css internet-explorer

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

'x'时间后javascript图像发生变化

我将如何为此js添加计时器,以便在'x'时间后图像会自动更改.目前,通过带有'rel'属性的'a href'进行更改,但仍需要具有'rel'的功能.

JS:

$(document).ready(function (){
    $('#button a').click(function(){
        var integer = $(this).attr('rel');
        $('#myslide .cover').css({left:-1476*(parseInt(integer)-1)}).hide().fadeIn(); /*----- Width of div mystuff (here 160) ------ */
        $('#button a').each(function(){
        $(this).removeClass('active');
            if($(this).hasClass('button'+integer)){
                $(this).addClass('active')}
        });
    }); 
});
Run Code Online (Sandbox Code Playgroud)

HTML:

<div id="myslide">
<div class="cover">

    <div class="mystuff">
        <img src="images/header_01.jpg" rel="1"></img>
        <img src="images/header_02.jpg" rel="1"></img>
        <img src="images/header_03.jpg" rel="1"></img>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript image timer

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

有人会解释这个计算字符的代码吗?

我一直在尝试解决字符串中字符计数的难题,并找到以下代码.代码有效,但我无法理解替换部分:

function getCharCounts(s) {
    var letters = {};
    s.replace(/\S/g, function(s){
        letters[s] = (isNaN(letters[s] ? 1 : letters[s]) + 1);
    });

    return letters;
}

console.log(getCharCounts('he111 144pressions'));?
Run Code Online (Sandbox Code Playgroud)

有人请向我解释代码或编写更简单的版本吗?

javascript regex character

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

我使用Javascript/DOM动态创建了一个div.如何让div显示在页面上?

我正在尝试创建一个动态创建一些元素的网页.我写了以下内容:

<!DOCTYPE html>
<html>
    <head>
        <title>test</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
    </head>
    <body>
        <p>Here's some example text</p>
        <script type="text/javascript">
        var jselem = document.createElement ("div");
        jselem.innerHTML = '<p>and here\'s some more</p>';
        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

但是,JS部分似乎没有做任何事情,文本and here's some more没有打印.

谁能解释为什么它不起作用?任何帮助表示赞赏.

(请不要建议使用document.write()或类似.)

html javascript dom

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