用图像填充ul li

时间:2014-09-10 13:20:29

标签: javascript jquery html-lists fill

我有ul li fill with

的问题
<ul>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
</ul>

我需要使用 javascript

输入所有 li

但请不要这个例子:

$("ul").html("<li><img src='something' /></li>");

因为我在javascript加载之前需要这个ul li。

我想在javascript之后看起来像:

<ul>
    <li><img src='something' /></li>
    <li><img src='something' /></li>
    <li><img src='something' /></li>
    <li><img src='something' /></li>
</ul>

我的问题是:如何用图像填充所有文件。

javascript与for循环一起使用。因为我可能有这个变种:

<ul>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
</ul>

4 li且只有2张图片,看起来像这样:

<ul>
    <li><img src='something' /></li>
    <li><img src='something' /></li>
    <li></li>
    <li></li>
</ul>

我希望我解释一下。不管怎样,谢谢

我的PHP代码:

<?php
session_start();
include_once('connect.php');

$path = "../uploads/";
$i = -1;
foreach($_FILES['files']['name'] as $key => $name) {
    $i++;
    $image_info = getimagesize($_FILES['files']['tmp_name'][$key]);
    $image_width = $image_info[0];
    $image_height = $image_info[1];

    if($image_width > $image_height) {
        $height = $image_height;
        $width = $height;
    } else if($image_width < $image_height) {
        $width = $image_width;
        $height = $width;
    } else {
        $width = $image_width;
        $height = $image_height;
    }

    $canvas = imagecreatetruecolor($width, $height);
    $current_image = imagecreatefromjpeg($_FILES['files']['tmp_name'][$key]);

    imagecopy($canvas, $current_image, 0, 0, ($image_width/2)-($width/2), ($image_height/2)-($height/2), $width, $height);
    imagejpeg($canvas, $path.'cropped_'.$name, 100);


    echo 
    "
        <script type='text/javascript'>
            var _img = document.createElement('img');
            _img.src = 'uploads/".$name."';

            $('.image-upload ul li:nth(".$i.")').append(_img);
        </script>
    ";
}

?>

之前: http://i.imgur.com/jNiA9U9.png

http://i.stack.imgur.com/Ve1CC.png

2 个答案:

答案 0 :(得分:2)

var _ul=document.getElementByTagName('ul');
var _list=_ul.getElementsByTagName('li');

for (var i=0;i<=_list.length;i++)
  {
    var _img=document.createElement('img');
    _img.src="something";
    _img.id="foo"+i;
    _list[i].appendChild(_img);

  }

答案 1 :(得分:0)

您不必使用循环来填充带有图像的所有li标记。使用,

$("li").append("<img src='something' />");

如果您要为前2个li标签添加图片,请像这样使用

$("li:lt(2)").append("<img src='something' />");