Jquery函数关闭div自行追加

Ali*_*ssa 12 javascript asp.net jquery

我有以下功能:

function displayResults(Items) {
                $("#result").text("");
                $("#result").append('<div class="car-offers">');
                $("#result").append('<div class="purple"></div>');
                $("#result").append('<img src="images/caroffer.jpg" alt="" title="" width="213" height="117" />');
                $("#result").append('<h3>titleeee</h3>'); // ' + Items[i].Title + '
                $("#result").append('<span>Year: 2003</span>');
                $("#result").append('<span>Milage: 172,000 Km</span>');
                $("#result").append('<span class="price">53,000 QR</span>');
                $("#result").append('<a href="">Link</a>');
                $("#result").append('</div>');

                $("#result").append('<div class="car-offers">');
                $("#result").append('<div class="purple"></div>');
                $("#result").append('<img src="images/caroffer.jpg" alt="" title="" width="213" height="117" />');
                $("#result").append('<h3>titlee22</h3>'); // ' + Items[i].Title + '
                $("#result").append('<span>Year: 2003</span>');
                $("#result").append('<span>Milage: 172,000 Km</span>');
                $("#result").append('<span class="price">53,000 QR</span>');
                $("#result").append('<a href="">Link</a>');
                $("#result").append('</div>');
        }
Run Code Online (Sandbox Code Playgroud)

我的问题是,在运行时,html显示如下:<div class="car-offers"></div>所以所有页面都搞砸了

Fab*_*tté 8

您不能附加HTML的不完整片段.append().与之不同的是document.write,jQuery的.append()方法在将它们附加到DOM之前将传递的字符串解析为元素.

所以当你这样做时:

$("#result").append('<div class="car-offers">');
Run Code Online (Sandbox Code Playgroud)

jQuery将给定的字符串解析为div元素并将car-offers值赋给其className属性,然后将新创建的元素追加到#result元素中.

在单个操作中附加整个HTML字符串将解决这个问题,因此jQuery知道如何正确解析给定的字符串.


就个人而言,我不建议将那么多HTML放在JS文件中.您可以考虑将其放入a中div,display:none然后只需调用.show()它即可.或者最初在页面中,.detach()它存储在变量中,.append()并在必要时返回.


Aru*_*hny 7

您可以使用带连接的数组来解决此问题

function displayResults(Items) {
    $("#result").text("");
    var array = [];
    array.push('<div class="car-offers">');
    array.push('<div class="purple"></div>');
    array
            .push('<img src="images/caroffer.jpg" alt="" title="" width="213" height="117" />');
    array.push('<h3>titleeee</h3>'); // ' + Items[i].Title + '
    array.push('<span>Year: 2003</span>');
    array.push('<span>Milage: 172,000 Km</span>');
    array.push('<span class="price">53,000 QR</span>');
    array.push('<a href="">Link</a>');
    array.push('</div>');

    array.push('<div class="car-offers">');
    array.push('<div class="purple"></div>');
    array
            .push('<img src="images/caroffer.jpg" alt="" title="" width="213" height="117" />');
    array.push('<h3>titlee22</h3>'); // ' + Items[i].Title + '
    array.push('<span>Year: 2003</span>');
    array.push('<span>Milage: 172,000 Km</span>');
    array.push('<span class="price">53,000 QR</span>');
    array.push('<a href="">Link</a>');
    array.push('</div>');
    $("#result").text(array.join(''));
}
Run Code Online (Sandbox Code Playgroud)