jquery中的html元素每个返回值

时间:2012-09-07 07:53:32

标签: php jquery json

我在尝试显示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元素时它会搞砸。还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

我认为你要找的是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应该调用css(key,value)而不是attr(key,value),因为CSS更强大。

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

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

然后你应该看起来像这样的

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

您可以在my site查看我正在运行的示例。

如果我误解了您的问题,或者您的回答有任何问题,请告诉我,我会对其进行编辑。