小编Ist*_*115的帖子

custom属性仅适用于element.getAttribute("attribute")但不适用于"element.attribute"

我刚才注意到,如果我给html元素一个自定义属性,例如:

<input type="button" id="my_button" custom_attr="custom_attr_text" value="value_text" />
Run Code Online (Sandbox Code Playgroud)

然后我可以像这样检索它:

document.getElementById("my_button").getAttribute("custom_attr");
Run Code Online (Sandbox Code Playgroud)

它会回来"custom_attr_text",但如果我这样做

document.getElementById("my_button").custom_attr;
Run Code Online (Sandbox Code Playgroud)

然后它回来了undefined!

我还注意到,使用内置属性(例如valueid)以上两种工作都很好!有人可以解释为什么会这样吗?

javascript custom-attribute getattribute

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

emmet的自定义JavaScript代码段(在Sublime Text 2中)

我正在尝试将一些自定义的javascript片段和缩写添加到Emmet的snippets.json文件中,但我无法让它工作!(我使用的是Sublime Text 2.)

如果我把它放到settings.json的末尾

"javascript": {

    "abbreviations": {
        "while": "while(true)\n{\n\t\n}"
    },

    "snippets": {
        "asdf": "qwerty"
    }
}   
Run Code Online (Sandbox Code Playgroud)

什么都没发生.(我明确地将文件的语法设置为javascript)

但如果我用'css'替换'javascript':

"css": {

    "abbreviations": {
        "while": "while(true)\n{\n\t\n}"
    },

    "snippets": {
        "asdf": "qwerty"
    }
}
Run Code Online (Sandbox Code Playgroud)

它正确地覆盖了内置的CSS代码段,并且工作正常.(我显然将语法设置为css [否则它不起作用])

我错过了什么?根据这个:http://docs.emmet.io/customization/snippets/ 我应该能够以这种方式定义自定义语言的片段.

注意:我也尝试过'js'作为语言名称.

javascript customization code-snippets sublimetext2 emmet

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

Powershell 正则表达式 Matches[0].Groups 与 Matches.Groups 基于键名的索引

我刚刚在 PowerShell 中遇到了这种奇怪的行为,我想知道是否有任何合理的解释:

在字符串上运行正则表达式匹配后:(
是的,我知道,这可能不是最好的方法,但是在构建管道时出现了问题,在这里我只提供了一个仍然表现出行为的精简最小示例.)

    $r = "asdf" | Select-String "(?<test>\w+)"
Run Code Online (Sandbox Code Playgroud)

以下两个表达式为我打印相同的结果:

    $r.Matches.Groups
    $r.Matches[0].Groups
Run Code Online (Sandbox Code Playgroud)

但在这两者中,只有第二个有效:

    $r.Matches.Groups['test'] 
    $r.Matches[0].Groups['test']
Run Code Online (Sandbox Code Playgroud)

最奇怪的是,如果我使用数字索引,它在两种情况下都有效。

    $r.Matches.Groups[0] 
    $r.Matches[0].Groups[0] 
Run Code Online (Sandbox Code Playgroud)

编辑:我知道在这个示例中捕获组根本没有必要,但我只想展示一个简单的示例来说明问题。最初,我正在使用具有多个捕获组的多个模式,我想通过名称访问它们。我知道我可以通过使用来解决它Matches[0],但我对解释感兴趣。

regex powershell

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

Coq简单/展开一次。(用功能的一次迭代的结果替换目标的一部分。)

我是一所大学的讲师,参加一门名为“ 类型系统的语言的课程,在最后一次讲解中,该教授将以下示例用于类型理论的归纳证明:

假设存在归纳定义的自然数(出于某种原因,他坚持称其为术语),而我们在它们上递归定义了一个大于函数。我们可以证明,对于每一个n,它都拥有(suc n> n)。

我准备了以下Coq代码以在类中实现此代码:

Inductive term : Set :=
  | zero
  | suc (t : term)
.

Fixpoint greaterThan (t t' : term) {struct t} : bool :=
  match t, t' with
   | zero, _ => false
   | suc t, zero => true
   | suc t, suc t' => t > t'
  end
where "t > t'" := (greaterThan t t').

Lemma successorIsGreater : forall t : term, suc t > t = …
Run Code Online (Sandbox Code Playgroud)

proof coq induction coq-tactic

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

TypeScript 中嵌套记录的递归类型

从版本 3.7 开始,TypeScript 支持递归类型,我认为这将帮助我为嵌套记录结构创建正确的类型,但到目前为止,我还没有设法让编译器对我的尝试感到满意。

让我们忘记泛型,作为一个最小的例子,我有一个对象,它在字符串键后面的任意深度都有数值。

type NestedRecord = Record<string, number | NestedRecord>

const test: NestedRecord = {
  a: 10,
  b: {
    c: 20,
    d: 30,
  }
}
Run Code Online (Sandbox Code Playgroud)

这种类型对我来说是有意义的,但是编译器给了我以下错误:
Type alias 'NestedRecord' circularly references itself.

对递归类型的支持是否存在一些我不知道的限制?如果是这样,如何实现这种结构的类型?


编辑:根据@jcalz的回答,我最终使用了以下通用定义:

type NestedRecord<T> = { [key: string]: NestedRecordField<T> }
type NestedRecordField<T> = T | NestedRecord<T>
Run Code Online (Sandbox Code Playgroud)

在我的例子中,将它们分开是有意义的,因为对此类记录进行操作的递归函数NestedRecordField无论如何都需要类型,但以下一行解决方案也是有效的:

type NestedRecord<T> = { [key: string]: T | NestedRecord<T> }
Run Code Online (Sandbox Code Playgroud)

nested record typescript

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