Javascript html多选图像
我在屏幕上打印了16个图标和一些小图片 现在我想能够选择图标, 当我按下按钮时,选定的图标ID将以表格形式发送 我在网上只看到复选框和列表, 最好的方法是什么 我对网页设计相当陌生 谢谢你 试试这个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
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真的会很有帮助