Estoy tratando de obtener el primer carácter de una cadena recuperada con jQuery text() . Funciona si pruebo con una cadena simple codificada:
var str = 'hello'; var first_char = str.charAt(0); console.log('first_char : ' + first_char); Pero no puedo hacerlo con el texto de una etiqueta recuperada con text()
var str = $('.form-item-field-lorem-433 label').text(); console.log('str : ' + str); var first_character = str.charAt(0); console.log('first_character : ' + first_character); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="form-item-field-lorem-433"> <input data-drupal-selector="edit-field-lorem-433" type="checkbox" id="edit-field-lorem-433" name="field_lorem[433]" value="433" class="form-checkbox form-check-input"> <label class="form-check-label" for="edit-field-lorem-433"> Asie-Pacifique </label> </div> También probé con substring() y slice()
¿Puedes explicarme qué es lo que no funciona?
El problema se debe a que la cadena de text() también contiene el espacio en blanco del HTML. Puedes usar trim() para eliminar esto:
var str = $('.form-item-field-lorem-433 label').text().trim(); // trim here console.log('str : ' + str); var first_character = str.charAt(0); console.log('first_character : ' + first_character); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="form-item-field-lorem-433"> <input data-drupal-selector="edit-field-lorem-433" type="checkbox" id="edit-field-lorem-433" name="field_lorem[433]" value="433" class="form-checkbox form-check-input"> <label class="form-check-label" for="edit-field-lorem-433"> Asie-Pacifique </label> </div>