如果它匹配数组的值,则隐藏链接

时间:2015-03-13 14:07:40

标签: javascript jquery

所以我有一个功能,它可以为每个人提供一个功能。#tree ol li'树是从php脚本生成的文件和目录的列表。 我的想法是看' #tree ol li a' anchor元素的值以特定的扩展名结尾,并隐藏它。所以我试图制作这个脚本..但它不起作用.. 任何人都可以帮我找到我错的地方吗?..

function checkstuff(){
i = 0;
$("#tree ol li").each(function(){

i++;
console.log(i);
var temp_val = $(this).children("a").attr("href");
var temp_val2 = temp_val.substr(temp_val.length - 4);
console.log(temp_val2);
var extArr = [".mp3",".wav",".m4a"];
if(temp_val2 == extArr[i]){
console.log(extAttr[i] + "WELL this should have worked..");
$(this).hide();
}; 
});

3 个答案:

答案 0 :(得分:1)



function checkstuff() {
  $("#tree ol li").each(function() {


    var temp_val = $(this).children("a").attr("href");
    var temp_val2 = temp_val.substr(temp_val.length - 4);    
    console.log(temp_val2);
    var extArr = [".mp3", ".wav", ".m4a"];
    for (i = 0; i < extArr.length; i++) {
      if (temp_val2 == extArr[i]) {
        console.log(extArr[i] + "WELL this should have worked..");
        $(this).hide();
      }
    }
  });
}
&#13;
&#13;
&#13;

这是您的工作脚本

答案 1 :(得分:1)

你的for循环破坏了你的代码。 我们假设您有3个链接

x.wav
y.mp3
z.m4a

您搜索的方式是按照特定的顺序:mp3,wav,然后是m4a。你想要做的是搜索你的结果是否包含在数组中,而不是它是否与索引搜索一致

(即:首先href 必须以.mp3结尾)

为此,您希望这样做:

function checkstuff() {
    i = 0;
    $("#tree ol li").each(function() {

      i++;
      console.log(i);
      var temp_val = $(this).children("a").attr("href");
      var temp_val2 = temp_val.substr(temp_val.length - 4);
      console.log(temp_val2);
      var extArr = [".mp3", ".wav", ".m4a"];
      if (extArr.indexOf(tempval2) > -1) {
        console.log(extArr.indexOf(tempval2) + "WELL this should have worked..");
        $(this).hide();
      };
    });

答案 2 :(得分:0)

试试这个:

function checkstuff(){
    i = 0;
    $("#tree ol li").each(function(){

    i++;
    console.log(i);
    var temp_val = $(this).children("a").attr("href");
    var temp_val2 = temp_val.substr(temp_val.length - 4);
    console.log(temp_val2);
    var extArr = [".mp3",".wav",".m4a"];
    if($.inArray(temp_val2 ,extArr[i])>-1){
    console.log(extAttr[i] + "WELL this should have worked..");
    $(this).hide();
    }; 
    });