从没有路径的href附加文件名

时间:2015-03-09 07:02:48

标签: jquery split append

感谢所有回复。有多个正确的答案,我正在使用Arun的答案,因为它似乎是最干净的解决方案。干杯。

以下按预期工作......

jQuery(document).ready(function(jQuery) {

    jQuery(".jg-entry").each(function() {

    jQuery(this).append(jQuery('<h6/>', {text: jQuery(this).parent().find('a').prop('href')}));

    });
});

...它附加了每个&#39; a&#39;指定div中h6标记之间的链接。但是,我只想在没有路径的情况下包含文件名。

目前输出(例如)

<h6>http://localhost/client/content/photos/image.jpg</h6>

但我希望只输出文件名,就像这样...

<h6>image.jpg</h6>

html看起来像这样:

<div class="jg-entry">
<a href="http://localhost/client/content/photos/photo1.jpg"><img src="http://localhost/client/content/photos/photo1-large.jpg"></a><h6>http://localhost/client/content/photos/photo1.jpg</h6>
</div>

我做了很多搜索和玩耍。我找到了几个类似的线程,但我没有管理(我还不够好)来解决这个问题。

谢谢!

6 个答案:

答案 0 :(得分:1)

您可以使用split()pop,如下所示

jQuery(function ($) {
    $(".jg-entry").each(function () {
        $(this).append($('<h6/>', {
            text: $(this).find('a').attr('href').split('/').pop()
        }));
    });
});

演示:Fiddle

也不需要调用.parent(),因为anchor.jg-entry条目的子项。

答案 1 :(得分:0)

使用拆分。

jQuery(document).ready(function(jQuery) {
    jQuery(".jg-entry").each(function() {
        var paths = jQuery(this).parent().find('a').prop('href').split("/"),
            filename = paths[paths.length-1];       
        jQuery(this).append(jQuery('<h6/>', {text:filename}));
    });
});

答案 2 :(得分:0)

请尝试以下方法: -

 jQuery(document).ready(function(jQuery) {

   jQuery(".jg-entry").each(function() {

   var  yourstring = jQuery(this).parent().find('a').prop('href');
   var fileNameIndex = yourstring.lastIndexOf("/") + 1;
   var filename = yourstring.substr(fileNameIndex);

jQuery(this).append(jQuery('<h6/>', {text:filename  }));

}); });

答案 3 :(得分:0)

jQuery(document).ready(function(jQuery) {

    jQuery(".jg-entry").each(function() {

    var link = jQuery(this).parent().find('a').prop('href');
    jQuery(this).append(jQuery('<h6/>', {text: link.substring(data.lastIndexOf('/')+1,data.length)}));

    });
});  

答案 4 :(得分:0)

使用.split('/').pop()

.split('/')允许您从字符串中创建一个数组,.pop()将返回创建的数组中最后一个项目,即图像名称"photo1.jpg"

jQuery(".jg-entry").each(function() {
  jQuery(this).append(jQuery('<h6/>', {
    text: jQuery(this).parent().find('a').prop('href').split('/').pop()
  }));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="jg-entry">
  <a href="http://localhost/client/content/photos/photo1.jpg">
    <img src="http://localhost/client/content/photos/photo1-large.jpg">
  </a>
</div>

答案 5 :(得分:0)

使用prop() Demo Here

$(function ($) {
    $(".jg-entry").each(function () {
        $(this).append($('<h6/>', {
            text: $(this).find('a').prop('href').split('/').pop()
        }));
    });
});