首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >函数参数可以传递到字符串中吗?

函数参数可以传递到字符串中吗?
EN

Stack Overflow用户
提问于 2019-06-15 03:39:41
回答 2查看 53关注 0票数 0

我正在用javascript制作一个计算器表,我一直在编写document.getElementById('x').innerHTML。我可以编写一个函数来替换这段代码吗?例如:

代码语言:javascript
代码运行次数:0
运行
复制
function select (a) {
  return document.getElementById(${a}).innerHTML;
}

我看到的问题是,如果我在getElementById中使用模板文字,我无法添加将字符串定义为字符串所需的引号。

为了把它放回上下文中,我在一个表中有许多单元格,每个单元格都有不同的in。为了允许js更新每个单元格,我不得不反复编写:document.getElementById('x').innerHTML。这让我想知道,我能不能写一个小函数,让我跳过这个额外的打字?函数可以接受一个参数并返回它周围的引号吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-15 03:42:05

只是

代码语言:javascript
代码运行次数:0
运行
复制
var select = function(a) {
  return document.getElementById(a).innerHTML;
}
var ham = select('thing');

就够好了。系统已经知道那里有一个字符串,因为这就是调用select()函数时的类型。

如果您在为innerHTML分配值时试图减少键入量,那么您也必须在函数体中这样做。为什么?因为一旦从函数返回innerHTML字符串属性,它就是一个不可变的值,类似于'a' = 'b'

下面是这个赋值函数的样子:

代码语言:javascript
代码运行次数:0
运行
复制
var assign = function( target, value) {
    document.getElementById(target).innerHTML = value;
}
assign('capitalGain', '$' + currency(initialGain));
票数 3
EN

Stack Overflow用户

发布于 2019-06-15 03:56:28

对于这样简单的任务,您不需要模板文本:

代码语言:javascript
代码运行次数:0
运行
复制
function select(a) {
    return document.getElementById(a).innerHTML;
}

或者如果你必须:

代码语言:javascript
代码运行次数:0
运行
复制
function select(a) {
    return document.getElementById(`${a}`).innerHTML;
}

现在Chrome支持类似jQuery的语法,所以在新版本的Chrome中,这也是可行的。

代码语言:javascript
代码运行次数:0
运行
复制
function select(a) {
    return $(`#${a}`)[0].innerHTML;
}

或者更详细、更易懂的版本:

代码语言:javascript
代码运行次数:0
运行
复制
function select(a) {
    let str = "#" + a;
    let [elem] = $(str);
    return elem.innerHTML;
}

还有一个--和冗长的那个相比,这个是很难读的,也是不好的做法。

代码语言:javascript
代码运行次数:0
运行
复制
const select = a => ([{ innerHTML: b }] = $(`#${a}`), b);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56607129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档