gpt4 book ai didi

javascript - 在一组预定义的文本选项中查找

转载 作者:行者123 更新时间:2023-11-29 10:25:53 24 4
gpt4 key购买 nike

比如说,我想看看一个 DOM 元素是否是一个 block 。我可以用三种方式来写,看我的心情:

// first way
if (el.currentStyle.display == "block" || el.currentStyle.display == "inline-block" || el.currentStyle.display == "table-cell")

// second way
var blocks = {"block": 1, "inline-block": 1, "table-cell": 1};
if (el.currentStyle.display in blocks)//

// third way
if (el.currentStyle.display.match(/block|inline-block|table-cell/))

我对他们所有人都有复杂的感觉。一旦我有多个选项,第一个就太冗长了。 Second 包含对象中的那些任意值(这次我放 1s 的地方)。第三个看起来有点矫枉过正。 (过度杀戮到底有什么坏处?)

你知道另一种更好的方法吗?如果不是,这三种方式有什么缺点吗?

请仅使用 Javascript。

最佳答案

我喜欢第三种方式;我认为这看起来一点也不矫枉过正。如果您需要更短的方式,那么这也适用:

el.currentStyle.display.match(/(e-)?(block|cell)/)

但这不是很可读...

可能值得通过扩展 String 原型(prototype)将其全部抽象掉:

String.prototype.matches = function(what) {
return (',' + what + ',').indexOf(',' + this + ',') > -1;
};

// Using it:
el.currentStyle.display.matches('block,inline-block,table-cell');

关于javascript - 在一组预定义的文本选项中查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/803110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com