-1

我有一些 HTML,例如:

<div class="blah">
    <span class="fileName">1.jpg</span>
</div>
<div class="blah">
    <span class="fileName">2.jpg</span>
</div>
<div class="blah">
    <span class="fileName">3.jpg</span>
</div>
<div class="blah">
    <span class="fileName">4.jpg</span>
</div>

我想用 jQuery 获取文件名(一个存储诸如 1.jpg、2.jpg、3.jpg、4.jpg 之类的变量的变量)。

我终于可以用一个隐藏的输入框来做到这一点,这是我的工作脚本:

<input type="hidden" id="img_names_input" />
<script>
$('.fileName').each(function(){
    var img_names_input = $(img_names_input).val();
    var img_names = $(this).html();
    $(img_names_input).val(img_names_input+','+img_names);
});
</script>

这工作得很好,但对我来说似乎不是一个完美的解决方案,我只是一个学习者,任何人都可以提出更好的解决方案?就像是:

$('.fileName').each(function(){
        var img_names .= ',' + $(this).html();
        alert(img_names);
    });

或者可能是某种数组实现在这里......!?谢谢

4

4 回答 4

3

使用+=而不是.=.

您需要+在 javascript 中连接。

于 2013-03-24T08:08:53.040 回答
1

JavaScript 用于+连接字符串。我会做一个数组:

var images = [];

$('.fileName').each(function() {
    images.push($(this).text());
});

或与.map()

var images = $('.fileName').map(function() {
    return $(this).text();
}).get();
于 2013-03-24T08:10:47.610 回答
1

代码应该是这样的:

var img_names = "";
$('.fileName').each(function() {
    img_names += $(this).html();
});
$('#img_names_input').val(img_names);
于 2013-03-24T08:11:33.167 回答
0

这个试试这个片段。可能会帮助你。

$(document).ready(function() {
    var img_names = [];
    $('.fileName').each(function(index){
        img_names.push($(this).html());     
    });
    alert(img_names);
});

请注意,这.=在 javascript 中不起作用。

于 2013-03-24T08:17:37.760 回答