2017-04-21 9 views
0

Je dois afficher dynamiquement le nom et le chemin de division du chemin entré par un utilisateur. Pour cela, j'avais divisé le chemin entré par l'utilisateur et n'en saisissais qu'une partie. Par exemple si l'utilisation entre le chemin comme:Afficher le texte fractionné du chemin s'il n'existe pas n'afficher rien

/content/mypath/myfolder/about/images/abc.jpg Ensuite, j'affiche des images/abc.jpg. Toutefois, disons que l'utilisateur entre seulement le nom et n'entre pas le chemin, au moins le nom & doit être affiché dans ce cas.

Mais une erreur se produit lorsque j'essaie de le faire.

Uncaught TypeError: Impossible de lire la propriété '0' de null

$(document).ready(function(){ 
 
    $('#getData').click(function(){ 
 
    var name = $('#name').val(); 
 
    var imgPath = $('#imgPath').val(); 
 
    var newPath = imgPath.match(/images\/.*$/i)[0]; 
 
    $('.container').append(
 
     $('<p>').text(name), 
 
     $('<p>').text(newPath, function(){ 
 
     return /^\/images/.test(newPath) ? src :$('#imgPath').val(); 
 
     }) 
 
    ); 
 
    //console.log(slicedPath); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script> 
 
Name: <input type="text" id="name"> 
 
Image path: <input type="text" id="imgPath"> 
 
<div class="container"> 
 

 
</div> 
 
<button id="getData">Click</button>

Uncaught TypeError: Impossible de lire la propriété '0' de null

Répondre

1

votre problème est dans cette ligne

var newPath = imgPath.match(/images\/.*$/i)[0]; 

vous essayez d'exécuter une correspondance avec une regex, puis sélectionnez le premier résultat, la position [0]. alors quand il n'y a pas de résultats, vous essayez d'obtenir la position [0] quand il n'y en a pas.

enlèverait juste que [0] à la fin de la ligne et cela fonctionnera

var newPath = imgPath.match(/images\/.*$/i); 
+0

parfait, merci! Au fait, j'avais fait une autre erreur en utilisant src au lieu du texte dans mon code où je vérifiais la valeur. – Sunny

+0

cool que vous l'avez trouvé, dites-moi si je peux aider dans quoi que ce soit d'autre – xploshioOn

+0

Cela fonctionne bien, mais je ne pense pas que la valeur de retour que j'ai écrite est correcte! Besoin de changer cela pour s'assurer que cela fonctionne correctement! Pourriez-vous m'aider à faire ça? – Sunny