2016-08-31 4 views
0

У меня есть массив, и я хочу удалить последний символ, который равен '0'. Вот почему я использую подстроку, чтобы удалить ее, и я пытаюсь использовать эту переменную как селектор jQuery. Но он не выбирает элемент, когда я использовал подстроку.Выбор элемента с переменной, которая была сделана с помощью подстроки

Мой код:


 
var key = 'director_front_passport0'; 
 
    
 
var document_name = key.substring(0,key.length - 1); 
 
console.log(document_name); //returns director_front_passport 
 

 
$('#' + document_name).append('<label class="error file_error">test</label>'); 
 
//I want to select element with id=director_front_passport 
 

 
    
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="file" name="director_front_passport" id="director_front_passport" />

Как следует выбирать элементы с определенным идентификатором, если я использовал substring?

+1

Почему бы не создать сниппет с реальными элементами по имени, как вы ожидали? Затем мы можем проверить, работает ли ваша логика – mplungjan

+0

Я отредактирую код, чтобы вы его тестировали с данными. –

+0

Также вы можете показать нам, как выглядят ваши HTML-элементы? – Adjit

ответ

1

Ваш код работает, если вы добавляете в div. Вы не можете добавить в поле

ввода Попробуйте after:

var response = { 
 
    errors: { 
 
    'director_front_passport0': "error1", 
 
    'director_back_passport0': "error2", 
 
    'director_address_document0': "error3" 
 
    } 
 
} 
 

 
$.each(response.errors, function(key, value) { 
 

 
    var files_array = ['director_front_passport0', 
 
        'director_back_passport0', 
 
        'director_address_document0']; 
 
    if ($.inArray(key, files_array) !== -1) { 
 

 
    var document_name = key.substring(0, key.length - 1); 
 
    console.log(document_name); //returns for example director_front_passport 
 

 
    $('#' + document_name).after('<label class="error file_error">test</label>'); 
 
    //I want to select element with id=director_front_passport 
 

 
    } 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<input type="file" id="director_front_passport" /><hr/> 
 
<input type="file" id="director_back_passport" /><hr/> 
 
<input type="file" id="director_address_document" />

+0

Если у меня есть элемент ввода, как выбрать родительский div - это не так -> $ ('#' + document_name) .parents ('div'). Append (' '); –

+1

См. Обновление – mplungjan

+0

Да, он работает, спасибо вам большое! –