Javascript 使用Split()是否总是需要与数组配对?
我一直在看别人的代码,我被一些我不能完全理解的语法卡住了 我看到的行是Javascript 使用Split()是否总是需要与数组配对?,javascript,jquery,arrays,split,ecmascript-5,Javascript,Jquery,Arrays,Split,Ecmascript 5,我一直在看别人的代码,我被一些我不能完全理解的语法卡住了 我看到的行是$id=$('#'+this.id.split('-'[0]+'-window') 我试图理解索引数组值:[0]的意义以及它存在的原因 根据ECMAScript 5规范,使用split()方法“返回数组对象”。因此,所讨论的子字符串被保留在索引值[0](即使数组中没有更多的值(我假设) 然后我们附加“-window”并获得最终值:$id=#tgx window(如果您单击了#tgx按钮值) 这是正确的吗?在我看来这真的很聪明
$id=$('#'+this.id.split('-'[0]+'-window')代码>
我试图理解索引数组值:[0]的意义以及它存在的原因
根据ECMAScript 5规范,使用split()方法“返回数组对象”。因此,所讨论的子字符串被保留在索引值[0](即使数组中没有更多的值(我假设)
然后我们附加“-window”并获得最终值:$id=#tgx window(如果您单击了#tgx按钮值)
这是正确的吗?在我看来这真的很聪明。但我不明白为什么拆分和数组值一起使用
另外,我试图在$id语句之后直接使用alert();调用来尝试“查看正在创建的内容”,但没有找到任何有用的信息你会怎么做才能从这行发生的事情中获得一些清晰的信息:$id=$(“#”+this.id.split(“-”)[0]+'-window”);//获取window id
如果你读到这里,非常感谢。我已经好几年没有这么喜欢看代码了。这是一种很棒的感觉:)你有以下ID
$windows = $('#tgx-window,#tgs-window,#tgm-window,#tgl-window'),
$buttons = $('#tgx-button,#tgs-button,#tgm-button,#tgl-button');
因为“this”只会指向按钮。拆分将ID拆分为一个数组,例如(tgx,按钮)
因此
$('#' + this.id.split('-')[0] + '-window');
此.id.split('-')[0]将等于tgx(如果单击了#tgx按钮)
这和
$('#tgx-window');
编辑
alert('#' + this.id.split('-')[0] + '-window')
将提醒IDSplit方法始终返回一个数组。您正在访问返回数组的第一个索引处的元素。
您可以了解更多有关拆分的信息我不太确定您的问题是什么.split
始终返回一个数组。因此,您必须访问要获取的数组元素(本例中为0
)。在特定的情况下,您正在访问数组([0])的第一个元素,它位于“-”号之前。是的,我想这是我的困惑。拆分总是创建一个数组。感谢提醒($id.attr('id'))
试试这个。或者console.log($id)
。谢谢。终于点击了!对于他/她试图完成的事情来说,这似乎真的很聪明。或者我只是在这个阶段很容易被打动:)
alert('#' + this.id.split('-')[0] + '-window')