Javascript 组合几个类似的变量声明

Javascript 组合几个类似的变量声明,javascript,dry,Javascript,Dry,这是我正在编写的脚本的一小部分,该脚本生成一个包含用户照片和文本的易趣列表。该脚本将所有代码作为字符串输出以进行复制和粘贴,并将呈现的HTML/CSS/JavaScript输出以进行预览。因此,href和src属性需要动态填充,因为我事先不知道它们。在我看来,这段话特别多余。我不知道该怎么做,除了我现在是怎么做的 我发布了这段代码的一个工作部分和一个提琴,希望得到关于我代码的一般建议。因为这是一个特定的问题,我把它贴在这里 以下是我的前两条语句,它们将href填充到全尺寸图像中: var ful

这是我正在编写的脚本的一小部分,该脚本生成一个包含用户照片和文本的易趣列表。该脚本将所有代码作为字符串输出以进行复制和粘贴,并将呈现的HTML/CSS/JavaScript输出以进行预览。因此,
href
src
属性需要动态填充,因为我事先不知道它们。在我看来,这段话特别多余。我不知道该怎么做,除了我现在是怎么做的

我发布了这段代码的一个工作部分和一个提琴,希望得到关于我代码的一般建议。因为这是一个特定的问题,我把它贴在这里

以下是我的前两条语句,它们将
href
填充到全尺寸图像中:

var fullSizeSrc1 = $('#slide-upload tr:first td:first a').attr('href');
    if (fullSizeSrc1) {
        fullSizeSrc1 = fullSizeSrc1;
    } else {
        fullSizeSrc1 = '';
    }

var fullSizeSrc2 = $('#slide-upload tr:nth-child(2) td:first a').attr('href');
    if (fullSizeSrc2) {
        fullSizeSrc2 = fullSizeSrc2;
    } else {
        fullSizeSrc2 = '';
    }
我目前有七个,其中七个(它们填充缩略图的
src
属性):

以下是脚本的一部分,其中包含要生成的HTML标记,并使用上述变量填充适当的属性:

'<div id="mblSlide">' + 
    '<a href="'+fullSizeSrc1+'" target="blank"><img data-name="one" alt="" src="'+fullSizeSrc1+'"></a>' + 
    '<a href="'+fullSizeSrc2+'" target="blank"><img data-name="two" alt="" src="'+fullSizeSrc2+'"></a>' + 
'</div>' +
'<div id="mblThumbs">' + 
    '<img style="border:1px solid #fff;margin:3px" data-name="one" alt="" src="'+thumbSrc1+'">' + 
    '<img style="border:1px solid #fff;margin:3px" data-name="two" alt="" src="'+thumbSrc2+'">'
 '</div>' +
”+
'' + 
'' + 
'' +
'' + 
'' + 
''
'' +

我希望这是清楚的。如果没有,请让我知道什么是不清楚的,我会尽我最大的努力,啊,澄清:)提前感谢你们所做的所有伟大的工作

如评论中所述

if (fullSizeSrc1) {
    fullSizeSrc1 = fullSizeSrc1;
}
实际上不执行任何操作或更改
fullsizesc1
的值。您应该将其更改为:

if(!(fullSizeSrc1)){
    fullSizeSrc1 = '';
}

//or if(fullSizeSrc1 === undefined)
关于不重新键入代码的原始问题:

<> P>我认为当你发现自己的名字时,你会发现不同类型的数据与VAR1、VAR2、VAR3、VAR4不同。一旦开始计数,就应该考虑使用数组。

因此,我们有一个开始:

var fullSizeSrc = [];
var fss = $('#slide-upload tr:first td:first a').attr('href');

if(!fss){
    fss = '';
}
fullSizeSrc.push();
但是,我们仍然有问题,编写相同的代码7次,对吗?您应该了解相同代码的每个版本之间的差异。第一个是变量名,我们使用数组解决了这个问题

第二个区别是我们将索引编入子元素列表中。假设我们有7个元素要看
1。。7
。我们可以使用一个简单的for循环来删除其他代码

var fullSizeSrc = [];

var total = 7;
for(var i =1, i <= total; i++){
    var fss = $('#slide-upload tr:nth-child('+i+') td:first a').attr('href');

    if(!fss){
        fss = '';
    }
    fullSizeSrc.push();
}

if(fullsizesc1){FulsisiZeSrc1= FulsiZeSrc1;不做任何事情。您正在为自己分配一个变量。如果您这样做7次,使用一个数组和一个循环。除此之外,您只是在更改变量,而不是属性。为什么要在客户端上执行此操作?这是一个允许用户生成自定义易趣列表的脚本。我将变量设置为等于自身,或者设置为空字符串,因为我不希望在生成HTML时返回
未定义的
填写那个特定的字段。据我所知,codereview不是针对特定的问题。这基本上是一个枯燥的问题。对我的问题进行了一些编辑。还发布了一个指向我的更通用的codereview帖子的链接。非常感谢!我离那个太近了,只是没能让它起作用。我使用了你答案中倒数第二个例子,mi也没有修改(
var total=$('#slide upload tr')。例如,length;
)。此外,我还禁止将不存在的索引设置为空字符串,只编写了一个函数来查找空的
src
属性并删除父节点。也许我现在可以睡觉了:-0
var fullSizeSrc = [];

var total = 7;
for(var i =1, i <= total; i++){
    var fss = $('#slide-upload tr:nth-child('+i+') td:first a').attr('href');

    if(!fss){
        fss = '';
    }
    fullSizeSrc.push();
}
var fullSizeSrc = [];
var links = $('#slide-upload tr:nth-child(n) td:first a');
$(links).each(funcion(i, a){
    var link = $(a).attr('href');
    if(!link){
        link = '';
    }

    fullSizeSrc.push(link);
})