简体   繁体   English

JavaScript数组问题

[英]Javascript array trouble

Its been a long day and I've learnt much about js but my heads fuzzled on this one, ok so I need to get one of the array numbers (depending on the one the user clicks into the settings below. but i have no idea how, ive tried reading up on arrays but i cant get my head around it. :/ 这是漫长的一天,我已经学到了很多关于js的知识,但是我对此感到困惑,好了,所以我需要获取一个数组编号(取决于用户单击以下设置的那个。)但我不知道我如何尝试读取数组,但我无法理解。

Sorry, I need to call a function every time I click on a different link and i need the functions to repond to each div seperatly. 抱歉,我每次单击不同的链接时都需要调用一个函数,并且需要该函数分别响应每个div。

var navLink = new Array();

    navLink[0] ='#one' < this is the Id of an href link.
    navLink[1] ='#two'
    navLink[2] ='#three'
    navLink[3] ='#four'
    navLink[4] ='#five'
    navLink[5] ='#six'  

var navDiv = new Array();

    navDiv[0] ='#content-one' < this is the Id of a content div.
    navDiv[1] ='#content-two'
    navDiv[2] ='#content-three'
    navDiv[3] ='#content-four'
    navDiv[4] ='#content-five'
    navDiv[5] ='#content-six'   

var settings = {

    objSlideTrigger: navLink[x], // link button id
    objSlidePanel: navDiv[x] // slide div class or id
}

I hope i have explained myself well enough... sorry if i havent. 我希望我对自己的解释已经足够好了。

I know this works but it only works for one... 我知道这有效,但只适用于一个...

var settings = { var settings = {

    objSlideTrigger: '#one', // link button id
    objSlidePanel: '#content-one' // slide div class or id
}

Heres a js fiddle that shows the core element of what im trying to achieve. 这是一个js小提琴,显示了我试图实现的核心要素。 Howeve this is just a single link and content box, i want multiple links and content boxes. 然而,这只是一个链接和内容框,我想要多个链接和内容框。 that all respond individually to being selected. 所有这些都分别对被选中做出响应。 jsfiddle.net/BeU3U/6/ jsfiddle.net/BeU3U/6/

I think this could work for you. 我认为这可能对您有用。 Just make sure that navLinks is always the same length as navDivs . 只要确保navLinks的长度始终与navDivs相同navDivs

var navLinks = [
  '#one',
  '#two',
  '#three',
  '#four',
  '#five',
  '#six',
];

var navDivs = [
  '#content-one',
  '#content-two',
  '#content-three',
  '#content-four',
  '#content-five',
  '#content-six',
];

var settings = [];

for (var i=0; i<navLinks.length; i++) {
  settings.push({
    objSlideTrigger: navLinks[i],
    objSlidePanel: navDivs[i],
  });
};

console.log(settings);

Output 输出量

[
  {objSlideTrigger: "#one", objSlidePanel: "#content-one"},
  {objSlideTrigger: "#two", objSlidePanel: "#content-two"},
  {objSlideTrigger: "#three", objSlidePanel: "#content-three"},
  {objSlideTrigger: "#four", objSlidePanel: "#content-four"},
  {objSlideTrigger: "#five", objSlidePanel: "#content-five"},
  {objSlideTrigger: "#six", objSlidePanel: "#content-six"},
]

You can probably achieve this with an array of JSON elements. 您可能可以通过使用JSON元素数组来实现。

var nav = [
    {"navLink": "#one", "navDiv": "#content-one"},
    {"navLink": "#two", "navDiv": "#content-two"},
    {"navLink": "#three", "navDiv": "#content-three"},
    {"navLink": "#four", "navDiv": "#content-four"},
    {"navLink": "#five", "navDiv": "#content-five"},
    {"navLink": "#six", "navDiv": "#content-six"}
];

var settings = function (rowIndex) {
    objSlideTrigger: nav[rowIndex]["navLink"],
    objSlidePanel: nav[rowIndex]["navDiv"]
};

try this one below 在下面试试这个

var settings = function (rowIndex)
{
    objSlideTrigger:navLink[rowIndex], 
    objSlidePanel:navDiv[rowIndex] 
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM