小编Ray*_*nos的帖子

登录/注册链接是否是 HTML5 <menu> 的语义用例

现场示例

HTML5 <menu> element

HTML5:

<menu type="list">
  <li><a href="/signup/"> Sign Up </a></li>
  <li><a href="/login/"> Log In </a></li>
</menu>
Run Code Online (Sandbox Code Playgroud)

我想在我的网站上添加一个注册/登录菜单。

  • 使用<menu>会是语义吗?
  • 我应该<ul>改用吗?

编辑:我使用语义 HTML5。浏览器支持无关紧要。

html semantic-markup

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

使用jQuery动态呈现选择框的问题

我正在动态创建一个包含选项节点的选择节点.该代码在FF和IE8中工作正常.

但它拒绝在怪异模式或ie7兼容模式下在IE8中工作.它拒绝在IE6中工作.

选项节点确实会添加到DOM中.

var PersonnelSelectorListBox,
    PersonnelSelectorDiv;

function AddListItems() {
    for(var i = 1; i <= 3; i++){
        $('<option />').text('Item ' + i).appendTo(PersonnelSelectorListBox);
    }
}

PersonnelSelectorDiv = $("<div>").css({
    position: "relative", 
    display: 'block', 
    top: 20,
    zIndex: 2
});

$("#AddToList").after(PersonnelSelectorDiv);

$("#AddToList").click(function() {
    //alert("click");
    AddListItems();
});

PersonnelSelectorListBox = $("<select id=\"PLB\" size=\"15\">").attr({
    size: 15, 
    id: 'PLB'
}).width(200);

PersonnelSelectorDiv.append(PersonnelSelectorListBox);
Run Code Online (Sandbox Code Playgroud)

示例代码是http://jsfiddle.net/jKmh4/3/

有谁知道如何欺骗即重新渲染DOM的一部分?

问题是通过单击事件调用AddListItems函数,而不是直接调用它.

javascript jquery internet-explorer dom

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

自动视觉布局测试

  • 是否有可能对某些东西在视觉上呈现为需要进行单元测试(对于某些想要的定义)?专门针对HTML和CSS将您的页面呈现为"预期"

我个人认为这样的工具允许您以声明的方式定义测试应该如何看待,然后在实际文件上运行复杂的启发式测试,以确定它与声明性定义的"接近"程度.

  • 是否有其他方法可以进行机器测试,例如HTML文件是否内容在视觉上是一致的.

我不是要问几乎不可能的问题是"看起来好看",而是它看起来是否一致或是否与给定的模式相匹配.

  • 最后一个问题是,如果这些工具不存在,它们是否值得写作?这种性质的工具实际上会给你有意义的结果,而不受非常大的误差限制.也就是说,他们可以准确地预测代码的某些变化是否会破坏您的视觉布局而不会产生大量的漏报或丢失明显被破坏的东西.

html css unit-testing

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

我如何使用链式javascript原型继承?

function Entity() {
    this.a = {a: 4};
    this.b = 5;
}

function Thing() {}
Thing.prototype = new Entity;

var thing1 = new Thing;
thing1.a.a = 3;
thing1.b = 4;
var thing2 = new Thing;
console.log(thing2.a.a); // prints 3 instead of 4. I would like 4.
console.log(thing2.b) // prints 5 as wanted
Run Code Online (Sandbox Code Playgroud)

我在javascript中设置原型继承时遇到了困难.理想情况下,我希望thing1和thing2都拥有自己的"新实体原型"的干净副本.

使用this.__proto__是我想避免的

[编辑]

我对这是如何工作有一个大概的了解.

设置thing1.b在Thing实例上设置b属性.它不接触原型链中定义的Entity.b.

在Thing实例上设置thing1.aa的地方无法完成,因为它会抛出"无法设置未定义"错误.那是当它上升到原型链以找到定义的Entity.a并将Entity.aa设置为新值.

[进一步编辑]

正如@IvoWetzel所说设置thing1.b不会触及原型链,因为设置属性不会.设置thing1.aa的地方有两个步骤.在thing1.a上的一个getter,触及原型链,后跟一个.a的setter

javascript prototyping scope prototype this

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

为什么新阵列会变慢?

比较操作时

var fat_cats = cats.slice()
Run Code Online (Sandbox Code Playgroud)

var fat_cats = new Array(cats.length)
Run Code Online (Sandbox Code Playgroud)

性能差异令人困惑.

在firefox和chrome new Array中速度较慢(当它应该更快时,它只是分配一个空数组而不是迭代它)

在IE8 new Array中更快(这只是令人困惑)

任何解释都赞赏.

基准

javascript arrays profile benchmarking

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

如果列名存在,则选择数据库中每个表的每一行(columnName = value)

我正在使用SQL Server 2005并以登录身份登录sa.我想查询我的数据库中的每个表是否有一个特定的列名.如果是这样,将每一行(columnNameValue = someValue)附加到结果表中.然后返回结果表.

解决方案存在一些类似的问题.值得注意的是,我可以使用sp_MSForeachTable它,但它缺乏任何类型的文档.我可以SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES用来获取所有表的列表.

以下解决方案(链接文本)将遍历每个表和每列以在单元格中查找特定值.这与在单元格IF中查找该列是某个columnName的特定值不同.

编写嵌套的while语句应该是可能的,但有没有内置的命令来运行这样的查询?

伪代码如果有帮助:

foreach(table in tableList) {
    if (table.hasColumnName(SOME_COLUMN) {
       EXEC ('SELECT * FROM table WHERE (SOME_COLUMN = SOME_VALUE)')
    }
}
Run Code Online (Sandbox Code Playgroud)

[编辑]

而不是只有一个结果集,我希望每个表只有一个结果,只要select返回至少一行.这应该会产生大量不同的结果,因为期望加入或联合工作是不现实的.

如果可能的话,我想将tablename附加到每个结果的开头.

我在下面有一个简单的查询来获取所有结果,但它会显示空表,并且不会在各个结果中给出任何关于它属于哪个表的可视指示:

[进一步编辑]

更新了下面的查询,包括删除NULL结果的IF EXIST检查和选择名称AS源列,以便将表源添加到结果中,这要归功于@Martin

DECLARE @COLUMN_VALUE nvarchar(512), @VALUE nvarchar(10);

SET @COLUMN_VALUE = 'id'
SET @VALUE = '0';

DECLARE @TABLE_NAME nvarchar(512), @COLUMN_NAME nvarchar(512), @QUERY nvarchar(512);

SET @TABLE_NAME = '';

WHILE @TABLE_NAME IS NOT NULL
BEGIN
    SET @TABLE_NAME =
    (
        SELECT …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2005

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

替代css3而不是选择器

是否有:not符合IE8(和怪癖模式)的css3选择器的替代品.

在css或javascript/jquery中模拟选择器或类似的东西.

我使用*:not如下.随意推荐一种避免:not完全使用的解决方案.

@media screen {
    #printable {
        visibility: hidden;
    }
}

@media print {
    *:not(#printable) {
        visibility: hidden;
    }
    #printable {
        position: absolute;
        visibility: visible;
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,使用:not与使用有关,@media print因此只使用简单的jQuery解决方案来应用css,$(":not(#printable)")如果不聪明就无法工作.

包括像ie9.js或selectivirz这样的整个库不是一个选项,因为它可以影响页面的各个其他部分,并涉及大量的重新测试.

一个jsfiddle,显示它在支持http://jsfiddle.net/Raynos/TjKbz/的浏览器中工作:not

html javascript css jquery css-selectors

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

需要帮助解密JQuery示例

我刚刚开始学习jQuery和OO Javascript,所以我想弄清楚哪个属于哪个以及它们做了​​什么.我在JQuery文档中遇到了这段代码

(function($sub) {

  $sub // a subclass of jQuery
  $sub === jQuery; //= false

  $sub.fn.myCustomMethod = function(){
    return 'just for me';
  }

  $sub(document).ready(function() {
    $sub('body').myCustomMethod(); //= 'just for me'
  });

})(jQuery.subclass());
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 为什么(函数被()包围?
  2. 这是什么意思(jQuery.subclass()); ?这是一个JQuery的东西或常规JavaScript的一部分?

谢谢

jquery

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

使用node.js HTTP,res.end()如何保证套接字断开?

这是node.js的end实现:

OutgoingMessage.prototype.end = function(data, encoding) {
  if (this.finished) {
    return false;
  }
  if (!this._header) {
    this._implicitHeader();
  }

  if (data && !this._hasBody) {
    console.error('This type of response MUST NOT have a body. ' +
                  'Ignoring data passed to end().');
    data = false;
  }

  var ret;

  var hot = this._headerSent === false &&
            typeof(data) === 'string' &&
            data.length > 0 &&
            this.output.length === 0 &&
            this.connection &&
            this.connection.writable &&
            this.connection._httpMessage === this;

  if (hot) {
    // Hot path. They're doing …
Run Code Online (Sandbox Code Playgroud)

http httprequest node.js

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

正则表达式提取函数体

我有这个正则表达式

var bodyRegExp = /function[\\s]+[(].+[)][\\s]+{(.+)}/;

bodyRegExp.exec("module.exports = function () { /* any content */ }");
Run Code Online (Sandbox Code Playgroud)

它不起作用.它为什么坏了?

它的意思是将函数语句的主体从源代码中拉出来.

编辑:

我是傻瓜.试图用正则表达式解析javascript是愚蠢的.

javascript regex

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

为什么firefox中的event.timeStamp为0?

http://jsfiddle.net/wDddR/3/

var input = document.createElement("input");
input.onclick = function (ev) {
    console.log(ev.timeStamp === 0 ? "WHY IS IT ZERO" : "It's not broken");
};
input.click()

var ev = document.createEvent("Event");
console.log(ev.timeStamp === 0 ? "THIS IS MADNESS" : "At least this works");
Run Code Online (Sandbox Code Playgroud)

在firefox中,第一次0使用时间戳,并且在chrome中,时间戳是一个合理的数字.

在firefox和chrome中,第二次timeStamp是一个明智的数字.

javascript dom dom-events dom4

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

以跨浏览器兼容的方式触发onresize

我想从我的C#代码后面触发onresize事件.我认为这可以做到

Page.clientScript.RegisterScriptBlock(this.getType(), "id", "javascript code");
Run Code Online (Sandbox Code Playgroud)

我已经尝试过element.onresize()但它似乎不适用于Firefox.触发类似于以下jQuery的onresize事件的正确方法是什么?

$("body").trigger("resize");
Run Code Online (Sandbox Code Playgroud)

使用jQuery本身不是一种选择.

javascript asp.net events onresize

0
推荐指数
1
解决办法
3223
查看次数