Javascript html多选图像

Javascript html多选图像,javascript,html,Javascript,Html,我在屏幕上打印了16个图标和一些小图片 现在我想能够选择图标, 当我按下按钮时,选定的图标ID将以表格形式发送 我在网上只看到复选框和列表, 最好的方法是什么 我对网页设计相当陌生 谢谢你 试试这个 var idArray = []; $("#container-id img").each(function(index,value){ idArray.push($(value).attr("id")); }); //do anything with the array 试试这个 var idA

我在屏幕上打印了16个图标和一些小图片

现在我想能够选择图标, 当我按下按钮时,选定的图标ID将以表格形式发送

我在网上只看到复选框和列表, 最好的方法是什么

我对网页设计相当陌生

谢谢你

试试这个

var idArray = [];
$("#container-id img").each(function(index,value){
idArray.push($(value).attr("id"));
});
//do anything with the array
试试这个

var idArray = [];
$("#container-id img").each(function(index,value){
idArray.push($(value).attr("id"));
});
//do anything with the array

这可能是一种只使用普通Javascript或jQuery的方法。我更喜欢jQuery版本,因为它将click处理程序与标记分离,而不是使用通常不鼓励使用的内联onclick处理程序

这样做的目的是使用一个输入元素数组,您可以通过在元素名称中添加[]来创建该数组。同样的技术也可以用于SELECTs和其他元素,因为它向服务器发出已提交数组的信号,而不是单个键已知的值

<html>
<head>
<style type="text/css">
div img {
    cursor: pointer;
    border: 1px solid #f00;
}
</style>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script>
function setFormImage(id) {
    if (id != '' && !document.getElementById('input_'+id)) {
        var img = document.createElement('input');
        img.type = 'text';
        img.id = 'input_'+id;
        img.name = 'images[]';
        img.value = id;

        document.imageSubmit.appendChild(img);
    }
}
$(document).ready(function(){
    $('#jqueryimages img').click(function(){
        setFormImage(this.id);
    });
});
</script>
</head>
<body>
<pre><?php 

if (count($_GET['images'])) {
    print_r($_GET['images']);
}

?></pre>
<div style="float: left; width: 49%;">
    <h1>Plain ol' HTML</h1>
    1. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-1" onclick="setFormImage(this.id)"/>
    <br/>
    2. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-2" onclick="setFormImage(this.id)"/>
    <br/>
    3. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-3" onclick="setFormImage(this.id)"/>
    <br/>
    4. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-4" onclick="setFormImage(this.id)"/>
</div>
<div id="jqueryimages" style="float: left; width: 49%;">
    <h1>jQuery</h1>
    5. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-5"/>
    <br/>
    6. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-6"/>
    <br/>
    7. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-7"/>
    <br/>
    8. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-8"/>
</div>
<h1>Form Submit</h1>
<form name="imageSubmit" method="get">
    <input type="submit" value="View Selected"/>
</form>
</body>
</html>

这可能是一种只使用普通Javascript或jQuery的方法。我更喜欢jQuery版本,因为它将click处理程序与标记分离,而不是使用通常不鼓励使用的内联onclick处理程序

这样做的目的是使用一个输入元素数组,您可以通过在元素名称中添加[]来创建该数组。同样的技术也可以用于SELECTs和其他元素,因为它向服务器发出已提交数组的信号,而不是单个键已知的值

<html>
<head>
<style type="text/css">
div img {
    cursor: pointer;
    border: 1px solid #f00;
}
</style>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script>
function setFormImage(id) {
    if (id != '' && !document.getElementById('input_'+id)) {
        var img = document.createElement('input');
        img.type = 'text';
        img.id = 'input_'+id;
        img.name = 'images[]';
        img.value = id;

        document.imageSubmit.appendChild(img);
    }
}
$(document).ready(function(){
    $('#jqueryimages img').click(function(){
        setFormImage(this.id);
    });
});
</script>
</head>
<body>
<pre><?php 

if (count($_GET['images'])) {
    print_r($_GET['images']);
}

?></pre>
<div style="float: left; width: 49%;">
    <h1>Plain ol' HTML</h1>
    1. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-1" onclick="setFormImage(this.id)"/>
    <br/>
    2. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-2" onclick="setFormImage(this.id)"/>
    <br/>
    3. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-3" onclick="setFormImage(this.id)"/>
    <br/>
    4. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-4" onclick="setFormImage(this.id)"/>
</div>
<div id="jqueryimages" style="float: left; width: 49%;">
    <h1>jQuery</h1>
    5. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-5"/>
    <br/>
    6. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-6"/>
    <br/>
    7. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-7"/>
    <br/>
    8. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-8"/>
</div>
<h1>Form Submit</h1>
<form name="imageSubmit" method="get">
    <input type="submit" value="View Selected"/>
</form>
</body>
</html>

尽管jQuery不在标记中,但您应该这样做。这会让你的生活更轻松,因为你正努力去做。以下是使用jQuery和仅使用Javascript的基本步骤:

使用jQuery

为所有图标指定一个类,并为每个图标指定一个唯一的id:

然后将该类绑定到单击事件 $'.myIcons'。绑定“单击”,函数{ $this.toggleClass'selectIcon'; };

将表单提交功能附加到onsubmit: 生成submitForm函数:

使用Javascript

类似于上面,但更复杂的方式

要切换类,请参见此线程:

要按类获取属性,请参阅此网站:


尽管jQuery不在标记中,但您应该这样做。这会让你的生活更轻松,因为你正努力去做。以下是使用jQuery和仅使用Javascript的基本步骤:

使用jQuery

为所有图标指定一个类,并为每个图标指定一个唯一的id:

然后将该类绑定到单击事件 $'.myIcons'。绑定“单击”,函数{ $this.toggleClass'selectIcon'; };

将表单提交功能附加到onsubmit: 生成submitForm函数:

使用Javascript

类似于上面,但更复杂的方式

要切换类,请参见此线程:

要按类获取属性,请参阅此网站:


谢谢!这对我理解网页设计非常有帮助。我可以使用jQuery而不用担心它在某些浏览器中不起作用吗?是的。jQuery支持所有浏览器。事实上,使用jQuery和跨浏览器兼容要比创建自己的自定义JS容易得多,因为jQuery在内部处理许多不兼容问题。您的链接现在已经失效了,非常感谢!这对我理解网页设计非常有帮助。我可以使用jQuery而不用担心它在某些浏览器中不起作用吗?是的。jQuery支持所有浏览器。事实上,使用jQuery和跨浏览器兼容要比创建自己的自定义JS容易得多,因为jQuery在内部处理许多不兼容问题。您的链接现在已经失效了,非常感谢!我进入了网站并开始阅读,似乎jQuery将非常有用。谢谢!我进入网站开始阅读,似乎jQuery真的会很有帮助