我有一个按钮如下:
<button class="btn btn-danger delete" data-type="GET" data-url="/js/jQuery-File-Upload-master/server/cf/Upload.cfc?method=init&file=quote_3-39Sussex.pdf">
<i class="glyphicon glyphicon-trash"></i>
<span>Delete</span>
</button>
我需要一些jquery来隔离并只返回data-url属性中的文件名,即“quote_3-39Sussex.pdf”
如何做到这一点?
假设有一个按钮点击监听器,我想开头会是这样的:
var str = $(this).attr('data-url');
var file = str.join?(something)?. I don't know how to proceed
答案 0 :(得分:1)
您可以像这样拆分字符串:
var file = str.split("=")[2]
您将拥有该文件
这里我们每次找到str
时都会剪切=
,我只需要取最后一个来获取文件名
假设您的网址总是与示例中的网址相同
var str = $(".delete").attr('data-url');
var file = str.split("=")[2]
console.log(file)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="btn btn-danger delete" data-type="GET" data-url="/js/jQuery-File-Upload-master/server/cf/Upload.cfc?method=init&file=quote_3-39Sussex.pdf">
<i class="glyphicon glyphicon-trash"></i>
<span>Delete</span>
</button>
&#13;
答案 1 :(得分:1)
如果&#34;文件&#34;参数总是应该是最后一个,也许你可以尝试:
var url_parts = str.split('=');
var file = url_parts[url_parts.length - 1];
希望这有帮助!
答案 2 :(得分:0)
最好使用jQuery data
方法来访问data-url
属性。然后,要获取网址部分,请使用split
和pop
:
var str = $(this).data('url');
var file = str.split('file=').pop();
这假定文件参数存在并且是URL中的最后一个参数。如果没有,那么可以使用这个正则表达式,并添加一个匹配的测试:
var str = $(this).data('url');
var m = str.match(/[&?]file=([^&#]*)/);
var file = m ? m.pop() : null;
有关如何从任意网址获取参数值的一般性问题已经回答here,并提供了更详尽,更健全的答案。