我有一个jQuery上传。上传1张图像时,此图像自动为默认图像。单词“Main”出现在此Image下。当您上传第二张图片时,我当然希望在第二张图片下显示文本“设为主”。使用下面的代码,它当然会显示在第二个,但也会在第一个图像下显示。我明白为什么,这是有道理的,但我不希望它发生。我现在如何过滤掉那里是否已有标签,如果没有,请保留,添加新标签。任何人都可以给我一个提示如何解决这个问题吗?
if ($('#default').val() == '')
{
$('a.ui-icon-zoomin').after('<h6 class="default">Main</h6>');
}
else{
$('a.ui-icon-zoomin').after('<h6 class="setDefault">Set as Main</h6>');
}
答案 0 :(得分:1)
我会在页面上添加一个类到当前选定的主图像。您有类默认值。然后点击当前的'.setDefault'我会删除默认值,用'setDefault'替换它,并编辑文本。然后在当前选定的链接上更改类并更改文本。像这样:
$('.setDefault').click(function(){
$('.default').removeClass('default').addClass('default').text('Set as Main')
$(this).removeClass('setDefault').addClass('default').text('Main')
});
现在只需将其合并到您当前的代码中。
编辑:
if ($('#default').val() == '')
{
$('a.ui-icon-zoomin').first().after('<h6 class="default">Main</h6>');
}
else{
$('a.ui-icon-zoomin').eq(1).after('<h6 class="setDefault">Set as Main</h6>');
}
当然是这里的秘密。我看到的问题是,eq是硬设定值。它也适用于第二个这里。如果你真的只是在你第一次创建一个专辑并上传一秒时才使用这个代码,这应该没问题。然后用原来的JavaScript接管。 对不起,如果这没有帮助
答案 1 :(得分:0)
试试这个
var $a = $('a.ui-icon-zoomin:last');
if ($('#default').val() == '')
{
if($a.next('h6').length == 0){
$a.after('<h6 class="default">Main</h6>');
}
}
else{
if($a.next('h6').length == 0){
$a.after('<h6 class="setDefault">Set as Main</h6>');
}
}
答案 2 :(得分:0)
如果您在彼此之后添加图像,那么您可能需要这样做:
if ($('#default').val() == '')
{
$('a.ui-icon-zoomin').after('<h6 class="default">Main</h6>');
}
else{
$('a.ui-icon-zoomin').last().after('<h6 class="setDefault">Set as Main</h6>');
}
我希望这会有所帮助: - )