调用函数后,我收到错误说未定义

时间:2015-06-19 11:10:26

标签: javascript jquery

在我的表中,第1列有一个带有href的标签,第三列有一些文本。所以,我想将所有href保存到一个数组中,其中各自的第3列匹配某些字符串并将其用于以后的目的。我曾尝试过以下代码,对我来说似乎没有什么不对,有人可以帮我解决这个问题。

function findimagelinks(){
    var rows = jQuery(".sortable tr.even").length + jQuery(".sortable tr.odd").length;
    var imglinks = [];
    
    for (i=0; i<rows; i++){
        var conditionvalue =jQuery(".sortable tr:eq(i+1) td:eq(3)").text();
        if(conditionvalue == "some string"){
            imglinks[i] = jQuery(".sortable tr:eq(i+1) td:eq(0) a").attr('href');
        }
    }
    console.log(imglinks);
}

findimagelinks();

2 个答案:

答案 0 :(得分:1)

字符串连接不正确!

var conditionvalue = jQuery(".sortable tr:eq(" + (i + 1) + ") td:eq(3)").text();
// ------------------------------------------^

imglinks[i] = jQuery(".sortable tr:eq(" + (i + 1) + ") td:eq(0) a").attr('href');
// -----------------------------------^

更新了代码段

&#13;
&#13;
function findimagelinks(){
  var rows = jQuery(".sortable tr.even").length + jQuery(".sortable tr.odd").length;
  var imglinks = [];

  for (i = 0; i < rows; i++) {
    var conditionvalue = jQuery(".sortable tr:eq(" + (i + 1) + ") td:eq(3)").text();
    if (conditionvalue == "some string") {
      imglinks[i] = jQuery(".sortable tr:eq(" + (i + 1) + ") td:eq(0) a").attr('href');
    }
  }
  console.log(imglinks);
}

findimagelinks();
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你的选择器错了。正确地连接像这样的字符串

var conditionvalue = jQuery(".sortable tr:eq(" + (i + 1) + ") td:eq(3)").text();

然后你的代码看起来像,

 for (i = 0; i < rows; i++) {
     var conditionvalue = jQuery(".sortable tr:eq(" + (i + 1) + ") td:eq(3)").text();
     if (conditionvalue == "some string") {
         imglinks[i] = jQuery(".sortable tr:eq(" + (i + 1) + ") td:eq(0) a").attr('href');
     }
 }