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