2017-04-21 17 views
0

ユーザーが入力したパスの名前と分割パスを表示する必要があります。 そのために、ユーザーが入力したパスを分割し、特定の部分のみを取得しました。例えば、ユーザーが次のようにパスを入力した場合:ユーザーがパスを入力した場合は分割値を返します。それ以外の場合は空白を返します

/content/mypath/myfolder/about/images/abc.jpg 次に画像/ abc.jpgを表示しています。

ただし、ユーザーが名前を入力してパスを入力しない場合は、少なくとも名前には&を適用する必要があります。

しかし、パスを入力するたびに0が表示されます。 これを修正するにはどうすればよいですか?

$(document).ready(function(){ 
 
    $('#getData').click(function(){ 
 
    var name = $('#name').val(); 
 
    var imgPath = $('#imgPath').val(); 
 
    var newPath = imgPath.match(/images\/.*$/i); 
 
    $('.container').append(
 
     $('<p>').text(name), 
 
     $('<p>').text(function(imgPath){ 
 
     return newPath ? imgPath : $('#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>

答えて

1

これはあなたの問題を解決する必要があります。私はあなたのreturn文がreturn newPath != null ? newPath : imgPath;

$(document).ready(function(){ 
 
    $('#getData').click(function(){ 
 
    var name = $('#name').val(); 
 
    var imgPath = $('#imgPath').val(); 
 
    var newPath = imgPath.match(/images\/.*$/i); 
 
    $('.container').append(
 
     $('<p>').text(name), 
 
     $('<p>').text(function(imgPath){ 
 
     return newPath != null ? newPath : $('#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> 
 

 

 
/content/mypath/myfolder/about/images/abc.jpg

+0

のみ変更しました

ありがとうございましたが、イメージパスが空白の場合、それは0を表示しています。理想的には、それは空白を表示する必要があります。 – Sunny

+0

@Sunny試してみてください。イメージパスが黒であれば、何も返しません。 –

+0

完璧!ありがとうございました! :) – Sunny

関連する問題