我在尝试显示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元素时它会搞砸。还有其他方法吗?
答案 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查看我正在运行的示例。
如果我误解了您的问题,或者您的回答有任何问题,请告诉我,我会对其进行编辑。