Javascript数组和变量点击功能

时间:2014-03-19 21:31:02

标签: javascript jquery arrays

所以我设置了两个javascript数组来从某些php中提取信息。一个数组获取要单击的类别的名称,而另一个数组存储该类别的类和id标记。 class和id标签除了css类型之外是相同的,但是数组需要将它们输出到文档元素中,然后在单击时影响文档的相关区域。我还需要从数组中删除重复项,这似乎不能在我当前的代码下工作:

<script type="text/javascript">
var BookSeries = [];
var BookClass = [];
var i=0;
</script>

然后从php中提取数组的变量并以这种方式输出:

<script type="text/javascript">
var uniqueSeries = BookSeries.filter(function(elem, pos) {
return BookSeries.indexOf(elem) == pos;
});

var uniqueClass = BookClass.filter(function(elem, pos) {
return BookClass.indexOf(elem) == pos;
});

while (uniqueSeries[i]) {
document.write( "<span id='"+uniqueClass[i]+"'>"+uniqueSeries[i]+"</span>" );
i++;
}

for(var i = 0; i < uniqueClass.length; i++) {
$np("#"+uniqueClass[i]).click(function(){
$np(".postitem").fadeOut(200);
$np("."+uniqueClass[i]).fadeIn(200);
});
}
</script>

1 个答案:

答案 0 :(得分:0)

您正在使用jquery,因此您可以执行以下操作将元素附加到DOM:

    var htmlString = "";
    for (var i = 0; i < uniqueSeries.length; i++) {
        htmlString += "<span id='"+uniqueClass[i]+"'>"+uniqueSeries[i]+"</span>";
    }

    $("#myContainer").html(htmlString);

不确定$ np是什么,所以我假设你的意思是jquery的$。

    for(var i = 0; i < uniqueClass.length; i++) {
        var uClass =  uniqueClass[i];
        $("#" + uClass).click(function(){
            $(".postitem").fadeOut(200);
            $("." + uClass).fadeIn(200);
        });
    }

编辑:

“#myContainer”指的是要将html追加到的dom元素的id。如果您只想将其附加到文档中,您可以执行以下操作:

    $(document).appendTo(htmlString);

另请参阅我更新了上面的代码,以反映您对uniqueClass数组的评论。