jquery中的html元素每个都返回值


html elements in jquery each return value

在循环数组时,我在尝试显示html元素时遇到问题,例如img、ul等。

$.each(data[0], function(i, dataa) {
    if(i == 'images') {
        $.each(data[0].images, function(x, datab) {
            $('.g').append('<tr><td>'+datab.imgid+'</td></tr>');
        });
    } else if(i == 'desc') {
        $('.g').append('<tr><td><label>' + i + ' : </label></td>' + '<td>' + dataa + '</td></tr>');
    } else {
        $('.g').append('<tr><td><label>' + i + ' : </label></td>' + '<td><input type="text" name="' + i + '" id="' + i + '" value="' + dataa + '" ></td></tr>');
    }
});

以下是将图像添加到阵列中:

foreach($_FILES['uploadsell1'][tmp_name] as $key => $value) {
    if($_FILES['uploadsell1'][tmp_name][$key] != null) {
        $filename = $_FILES['uploadsell1'][name][$key];
        $tempname = $_FILES['uploadsell1'][tmp_name][$key];
        copy($tempname, 'images/ads/tempads/'.$filename);
        $df[]["imgid"] = "<img src='/images/ads/tempads/".$filename."' height='80' width='100' />";
    }
}

$row['images'] = $df;                       
echo '['.json_encode($row).']';

公布在田地里的数据运行良好。只有当html元素被包括在内时,它才会变得一团糟。还有别的办法吗?

我想您要找的是attr()

尝试从修改您的代码

$('.g').append('<tr><td>'+datab.imgid+'</td></tr>');

$('.g').append( $('<tr/>').append($('<td/>').append($("<img/>").attr("src", datab.imgid).attr("width",datab.width).attr("height",datab.height))));

在客户端。在服务器端,你需要做一些类似的事情

$df = array ( array("src" => 'images.jpg', 'height' => '80', 'width' => '100') );

这意味着分解标签并详细说明您希望在HTML中为标签提供的所有属性。请注意,如果你做一些类似的事情,你可以很容易地获得一种更通用的方法

$df = array ( array("src" => 'images.jpg', "attrs" => array('height' => '80', 'width' => '100')) );

然后在javascript循环中遍历"attrs"。

您可能需要考虑声明CSS而不是标记属性。然后JavaScript应该调用CCD_ 6而不是CCD_。

但这个想法是,如果你想构建以下HTML

<img src="my_src.jpg" height="100" width="80"/>

那么你的JavaScript应该像这个

$("<img/>").attr("src","my_src.jpg").attr("height","100").attr("width","80")

你可以在我的网站上查看我的跑步示例。

如果我误解了你的问题,或者你认为我的回答有任何问题,请告诉我,我会编辑它。