Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组中的jQuery对象?_Jquery_Arrays_Each - Fatal编程技术网

数组中的jQuery对象?

数组中的jQuery对象?,jquery,arrays,each,Jquery,Arrays,Each,我正在尝试编写一个each函数,该函数查看每个列表项,然后在该项中查看每个跨度,对每个跨度应用一些css 当我开始深入研究时,我迷失了方向,无法真正弄清楚如何正确地获得每个列表项中每个跨度的唯一值 有什么想法吗 编辑-我意识到这似乎是类名的工作,但我已经简化了css的类型,我只想在这个示例中使用css。稍后,我将传递一些更复杂的css,这些css将依赖于其他值,如scrollTop和viewportHeight。如果您更改项目结构,会更容易。。见下文 var items = [['font-w

我正在尝试编写一个each函数,该函数查看每个列表项,然后在该项中查看每个跨度,对每个跨度应用一些css

当我开始深入研究时,我迷失了方向,无法真正弄清楚如何正确地获得每个列表项中每个跨度的唯一值

有什么想法吗


编辑-我意识到这似乎是类名的工作,但我已经简化了css的类型,我只想在这个示例中使用css。稍后,我将传递一些更复杂的css,这些css将依赖于其他值,如scrollTop和viewportHeight。

如果您更改项目结构,会更容易。。见下文

var items = [['font-weight: bold',
    'text-decoration: underline',
    'text-transform: uppercase'],
    ['color: purple', 'color: yellow'],
    ['color: pink']];

$(document).ready(function() {
    $('li').each(function(liIdx) { // For each list item
        var curCss = items[liIdx];
        $(this).find('span').each(function(idx) {
            var cssStyle = curCss[idx].split(':');
            $(this).css(cssStyle[0], cssStyle[1]);
        }); // Each span should get unique css value            
    });    
});

首先,如果您更改您的
项目,效果会更好,如下所示:

var items = [
    [
    'font-weight: bold',
     'text-decoration: underline',
     'text-transform: uppercase',
    ],
    [
    'color: purple',
    'color: yellow',
    ], 
    [
    'color: pink'
    ]
  ];

$(document).ready(function() {
    $('li').each(function(liIndex, li) {
        $('span', this).each(function(index, el) {
            var curCSS = items[liIndex][index].split(':');
            $(this).css(curCSS[0], curCSS[1])
        });
    });
});

如果不想更改
项目
结构,请尝试以下操作:

var items = [
    {
    spanOne: 'font-weight: bold',
    spanTwo: 'text-decoration: underline',
    spanThree: 'text-transform: uppercase'},
{
    spanOne: 'color: purple',
    spanTwo: 'color: yellow'},
{
    spanOne: 'color: pink'}
];

$(document).ready(function() {
    var ref = ['spanOne', 'spanTwo', 'spanThree']; // an array to make reference
    $('li').each(function(liIndex, li) {
        $('span', this).each(function(index, span) {
            var curCSS = items[liIndex][ref[index]].split(':');
            $(this).css(curCSS[0], curCSS[1])
        });
    });
});

我不太明白。
spanOne
应该是什么颜色<代码>粉红色
紫色
?为什么阵列中有东西?我不明白…我的意思是,如果是css,为什么不在css样式表中设置它,如果需要更改样式,请使用带有
addClass
removeClass
的类,其思想是第一个列表项,其中第一个栏位的字体权重为粗体,第二个列表项的第一个栏位应该为紫色,第三个列表项第一个范围应为粉红色。我在这个演示中简化了css。最后的代码将包含其他值,如滚动位置。是否使用css类?这个例子很奇怪。。。有像spanOne等的名称,但这些跨度本身没有名称或ID。您可以使用类选择器动态添加或删除其他CSS类。试图以您的示例中所示的方式进行操作肯定是脆弱的。@Bruno为什么
spanOne
spanTwo
spanThree
?我能改变这种结构吗?@Vega-yes。所有名称都可以更改。