jQuery图像显示问题

时间:2016-04-05 08:09:23

标签: jquery

我有一个div结构如下:

QTableWidgetNAME.blockSignals(True)
item.setForeground(Qt.red)
QTableWidgetNAME.blockSignals(False)

我的jQuery代码如下:

<div id="image0" style="margin-bottom:10px; "></div>
<div id="image1" style="margin-bottom:10px; "></div>
<div id="image2" style="margin-bottom:10px; "></div>
<div id="image3" style="margin-bottom:10px; "></div>
<div id="image4" style="margin-bottom:10px; "></div>

在我的情况下,如果res [0]为“5”,则代码将循环显示5图像,如果res [0]值为“1”,则其1图像。

使用上面的代码,它在开头显示5个图像,但下次仍显示5个图像而不是1.

3 个答案:

答案 0 :(得分:1)

    for (var j = 0; j < res; j++) {
        for (var i = 0; i < res[j]; i++) {
            $('#image' + "" + i).html(question.image);
        }
    }

你必须添加两个这样的循环。

答案 1 :(得分:1)

您正在这样做,每次都会替换div的内容。 因此,当res[0]小于div的总数时,具有较大ID的div将保持不变。

要解决此问题,首先必须定义这些图像div的总数,例如,在您的示例中,最多只有5个。

所以:var max = 5;

现在更改您的代码,以便我们清除那些较大的ID:

var max = 5;
var res = question.text.split(imgQues);
var i;
// Clear them out first
for (i = 0; i < max; i++){
    jQuery('#image' + "" + i).html('');
}
if (question.image != '') {
    for (i = 0; i < res[0]; i++) {
        jQuery('#image' + "" + i).html(question.image);
    }
}

或者,可能更希望这样做,因此无需跟踪有多少图像div

HTML:

<div id="image-container"></div>

CSS:

.my-image {
    margin-bottom:10px;
}

JavaScript的:

var imgContainer = jQuery("#image-container");
imgContainer.html(""); // Clear contents
if (question.image != '') {
    var res = question.text.split(imgQues);
    for(var i = 0; i < res[0]; i++){
        var newImage = jQuery("<div class=\"my-image\"></div>");
        newImage.html(question.image);
        imgContainer.append(newImage);
    }
}

答案 2 :(得分:0)

哦,我忘了清除div。它现在正在工作。谢谢。