2015-06-19 2 views
-2

В моей таблице 1-й столбец имеет теги с href's, а третий столбец имеет некоторый текст. Итак, я хочу сохранить все href в массив, где их соответствующий третий столбец соответствует некоторой строке и использовать ее для дальнейшей цели. Я пробовал следующий код, мне ничего не кажется неправильным, может ли кто-нибудь помочь мне в этом.После вызова функции я получаю сообщение об ошибке undefined

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();

ответ

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'); 
    } 
} 
+0

благодарственное для ответного –

+0

@ravishankardivvela по крайней мере consiider время проводки. Это первый ответ. –

+0

Я действительно проверял, что он был на 1 минуту раньше. –

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'); 
// -----------------------------------^ 

Обновлено Отрывок

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();

+1

Извините, мой плохая благодарность за ответ. Есть еще одна вещь, поэтому в соответствии с вышеприведенным кодом верхние 4 строки не сохраняются в массиве, а нижние четыре сохраняются в массиве. В соответствии с тем, что значение ключа в массиве начинается с 4, а не 1, я могу получить ключевое значение, начинающееся с «1». –

+0

Да, вы можете это сделать ... –

Смежные вопросы