dd.innerHTML += "<div> <img id='img" + i + "' /><div><input type='button' id='deleteimg' value='删除' onclick=\"deleteimg()\"/></div></div>";
如图,如何在innerHTML中为一个input标签添加事件,用单引号不行,用转义符还是不行,网上说innerHTML 中的都是文本形式插入,onclick事件无法被识别,有解决办法吗
如图,如何在innerHTML中为一个input标签添加事件,用单引号不行,用转义符还是不行,网上说innerHTML 中的都是文本形式插入,onclick事件无法被识别,有解决办法吗
1.原生 document.getElementById("deleteing").onclick = 具体方法
2.jquery $("#deleteing").on("click", function(){//do sth})
3.这个应该是可以的 '<div> <img id="img' +i +'" /><div><input type="button" id="deleteimg" value="删除" onclick="deleteimg()"/></div></div>'
你的代码我执行下,并没有错。
另外,如果代码不是跑在低版本IE下,可以采用模板字符串的写法,如下:dd.innerHTML += `
<div>
<img id="img${i}"/>
<div>
<input type="button" id="deleteimg" value="删除"" onclick="deleteimg()"/>
</div>
</div>`;
<html>
<head>
<title></title>
</head>
<body>
<div id="dd"></div>
<script type="text/javascript">
document.getElementById("dd").innerHTML += '<div> <img id="img' +0 +'" /><div><input type="button" id="deleteimg" value="删除" onclick="deleteimg()"/></div></div>';
function deleteimg(){
alert('删除');
}
</script>
</body>
</html>
我就是想知道如何在innerHTML中为哪个input标签加入onclick事件,,我那个就是点击删除,触发不了哪个deleteimg()事件。
我就是想知道如何在innerHTML中为哪个input标签加入onclick事件,,我那个就是点击删除,触发不了哪个deleteimg()事件。这个不影响,你把代码贴出来或者用jquery 很简单的 $("#dd").on("click","input",function(){alert("deleteing")})
我就是想知道如何在innerHTML中为哪个input标签加入onclick事件,,我那个就是点击删除,触发不了哪个deleteimg()事件。这个不影响,你把代码贴出来或者用jquery 很简单的 $("#dd").on("click","input",function(){alert("deleteing")})
你这是要在innerHTML外面给id为dd的div内部的input添加一个事件?
如上图,我将你的代码插入document.body里,点击按钮有执行“deleteimg()”。只要定义好deleteimg函数即可被正确调用。这种写法在谷歌下是能正常运行的。
我就是想知道如何在innerHTML中为哪个input标签加入onclick事件,,我那个就是点击删除,触发不了哪个deleteimg()事件。这个不影响,你把代码贴出来或者用jquery 很简单的 $("#dd").on("click","input",function(){alert("deleteing")})
你这是要在innerHTML外面给id为dd的div内部的input添加一个事件?把input换成button的id也行啊,你要的不就是点击按钮执行方法.. 要实现这个效果的方法很多种
我就是想知道如何在innerHTML中为哪个input标签加入onclick事件,,我那个就是点击删除,触发不了哪个deleteimg()事件。这个不影响,你把代码贴出来或者用jquery 很简单的 $("#dd").on("click","input",function(){alert("deleteing")})
你这是要在innerHTML外面给id为dd的div内部的input添加一个事件?把input换成button的id也行啊,你要的不就是点击按钮执行方法.. 要实现这个效果的方法很多种
但是放在innerHTML中的事件就是执行不了啊
你把完整的代码发一下
这是JSP界面的某一个事件触发需要id为dd的div,这个div里面什么都没有
<div id="dd"></div>
然后就是在这个事件function里有语句
var dd = document.getElementById("dd");
dd.innerHTML += "<div> <img id='img1' /><div ><input type='button' onclick=\"deleteimg()\" id='deleteimg' value='删除'/></div></div>";
然后我为了检查那个deleteimg的方法是否能执行,我就写了一个特别简单的句子
function deleteimg(){
alert("确认删除?");
}
然后在谷歌上看点击删除,就是没有反应,我查了一下,有人说那个innerHTML里面是文本形式写入的,写入的事件不会被触发
还有就是我没有写js,代码少就全在<script>标签里写的function
alert("确认删除?");
}
这个函数要放在全局环境中,不能放在其它函数内
你把完整的代码发一下
这是JSP界面的某一个事件触发需要id为dd的div,这个div里面什么都没有
<div id="dd"></div>
然后就是在这个事件function里有语句
var dd = document.getElementById("dd");
dd.innerHTML += "<div> <img id='img1' /><div ><input type='button' onclick=\"deleteimg()\" id='deleteimg' value='删除'/></div></div>";
然后我为了检查那个deleteimg的方法是否能执行,我就写了一个特别简单的句子
function deleteimg(){
alert("确认删除?");
}
然后在谷歌上看点击删除,就是没有反应,我查了一下,有人说那个innerHTML里面是文本形式写入的,写入的事件不会被触发
还有就是我没有写js,代码少就全在<script>标签里写的function
首页,通过innerHTML写入的字符串会被解析成html;其次,感觉按你的思路来都看不出有问题,方便的话还是截个图吧。
/*合同管理系统*/
/******头文件(.h)***********/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "ctype.h"
#define M 50
struct addressbook
{
int num;
char name[20];
float money[20];
char jia[15];
char yi[15];
int creatline[15];
int deadline[15];
char carryout[15];
char classify[15];
};
typedef struct addressbook AddressBook;
int Init(AddressBook t[]);
int AddRecord(AddressBook t[],int n);
void List(AddressBook t[],int n);
void SearchOnName(AddressBook t[],int n); void changeOnName(AddressBook t[],int n); int Deleteonname(AddressBook t[],int n); void SortOnNum(AddressBook t[],int n);
int quantityonjia(AddressBook t[]);
void SaveRecord(AddressBook t[],int n);
int LoadRecord(AddressBook t[]);
int Menu_select();
void main()
{
AddressBook adr[M];
int length;
while(1)
{
switch(Menu_select())
{
case 1: length=Init(adr);SaveRecord(adr,length);
break;
case 2:length=LoadRecord(adr);
AddRecord(adr,length);
break;
case 3:length=LoadRecord(adr);
List(adr,length);
break;
case 4:length=LoadRecord(adr);
SearchOnName(adr,length);
break;
case 5:length=LoadRecord(adr);
changeOnName(adr,length);
SaveRecord(adr,length);
List(adr,length);
break;
case 6:length=LoadRecord(adr);
Deleteonname(adr,length);
SaveRecord(adr,length);
List(adr,length);
break;
case 7:length=LoadRecord(adr);
SortOnNum(adr,length);
SaveRecord(adr,length);
List(adr,length);
break;
case 8:length=LoadRecord(adr);
quantityonjia(adr,length);
break;
case 0:exit(0); /*如返回值为0则程序结束*/
}
}
}
int Menu_select()
{
int c;
printf("press any key enter menu......\n");
getchar(); /*读入任意字符*/
printf("********************************MENU*********************************\n\ n");
printf(" 1. 录入初始记录\n");
printf(" 2. 增加记录\n");
printf(" 3. 显示所有记录\n");
printf(" 4. 根据合同名称查找记录\n");
printf(" 5. 根据合同名称修改记录\n");
printf(" 6. 根据合同名称删除记录\n");
printf(" 7. 按合同编号从小到大显示记录\n");
printf(" 8. 根据合同甲方统计其合同量数\n");
printf(" 0. 退出\n");
printf("*********************************************************************\n"); do{
printf("\n Enter your choice(0-8):");
if(scanf("%d",&c)!=1)
{ while(getchar()!='\n')
continue;
/* continue;*/
}
}while(c<0||c>8);
return c;
}
int Init(AddressBook t[])
{
int i,n;
system("cls");
printf("\n请输入要输入的记录数:\n");
scanf("%d",&n);
printf("开始输入记录:\n");
for(i=0;i<n;i++)
{ system("cls");
printf("\n第%d条合同的编号:",i+1);
scanf("%d",&t[i].num);
printf("第%d条合同的名称:",i+1);
scanf("%s",t[i].name);
printf("第%d条合同的金额:",i+1);
scanf("%s",t[i].money);
printf("第%d条合同的甲方:",i+1);
scanf("%s",t[i].jia);
printf("第%d条合同的乙方:",i+1);
scanf("%s",t[i].yi);
printf("第%d条合同的等级:",i+1);
scanf("%s",t[i].classify);
printf("第%d条合同的生效日期:",i+1);
scanf("%s",t[i].creatline);
printf("第%d条合同的到期日期:",i+1);
scanf("%s",t[i].deadline);
printf("第%d条合同是否完成:",i+1);
scanf("%s",t[i].carryout);
}
return (n);
}
int AddRecord(AddressBook t[],int n)
{
int i,m;
char *s;
system("cls");
printf("\n请输入在增加的记录数:\n");
scanf("%d",&m);
printf("开始追加记录\n");
for(i=n;i<n+m;i++)
{ system("cls");
printf("\n第%d条合同的编号:",i+1);
scanf("%d",&t[i].num);
printf("第%d条合同的名称:",i+1);
scanf("%s",t[i].name);
printf("第%d条合同的金额:",i+1);
scanf("%s",t[i].money);
printf("第%d条合同的甲方:",i+1);
scanf("%s",t[i].jia);
printf("第%d条合同的乙方:",i+1);
scanf("%s",t[i].yi);
printf("第%d条合同的等级:",i+1);
scanf("%s",t[i].classify);
printf("第%d条合同的生效日期:",i+1);
scanf("%s",t[i].creatline);
printf("第%d条合同的到期日期:",i+1);
scanf("%s",t[i].deadline);
printf("第%d条合同是否完成:",i+1);
scanf("%s",t[i].carryout);
}
return (n+m);
}
void List(AddressBook t[],int n)
{
int i;
system("cls");
printf("\n\n*********************************ADDRESS*************************** ********\n");
printf("编号姓名金额甲方乙方等级生效日期到期日期是否完成\n");
printf("---------------------------------------------------------------------------\n");
for(i=0;i<n;i++)
{ printf("-6d%-20s%-20f",t[i].num,t[i].name,t[i].money);
printf("%-15s%-15s%-15d%-15d%-15s%-15\n",t[i].jia,t[i].yi,t[i].classify,t[i].creatline,t[i].deadline ,t[i].carryout);
if((i+1)%10==0)
{
printf("Press any key continue...\n");
getchar();
}
}
printf("************************************end********************************** *\n");
}
void SearchOnName(AddressBook t[],int n)
{
char s[20];
int i,flag=0;
system("cls");
printf("请输入要查找的合同名:\n");
scanf("%s",s);
for(i=0;i<n;i++)
{
if(strcmp(s,t[i].name)==0)
{ flag=1;
system("cls");
printf("\n\n此人的信息如下:\n");
printf("编号姓名金额甲方乙方等级生效日期到期日期是否完成\n");
printf("---------------------------------------------------------------------------\n");
printf("-6d%-20s%-20f",t[i].num,t[i].name,t[i].money);
printf("%-15s%-15s%-15d%-15d%-15s%-15\n",t[i].jia,t[i].yi,t[i].classify,t[i].creatline,t[i].deadline ,t[i].carryout);
}
}
if(flag==0)
printf("查无此人!!\n");
}
int Deleteonname(AddressBook t[],int n)
{
char s[20];
char ch='N';
int i,j,flag=0;
system("cls");
printf("请输入要删除的合同名\n");
scanf("%s",s);
for(i=0;i<n;i++)
{
if(strcmp(s,t[i].name)==0)
{ flag=1;
system("cls");
printf("\n\n*********************************ADDRESS*************************** ********\n");
printf("编号姓名金额甲方乙方等级生效日期到期日期是否完成\n");
printf("---------------------------------------------------------------------------\n");
printf("%-6d%-20s%-20f",t[i].num,t[i].name,t[i].money);
printf("%-15s%-15s%-15d%-15d%-15s%-15\n",t[i].jia,t[i].yi,t[i].classify,t[i].creatline,t[i].deadline ,t[i].carryout);
printf("Are you sure delete it(Y/N)\n");
ch=getchar();
if(ch=='y'||ch=='Y')
{
for(j=i;j<n-1;j++)
t[j]=t[j+1];
n--;
i--;
}
}
}
if(flag==0)
printf("查无此人!!\n");
return n;
}
void changeOnName(AddressBook t[],int n)
{
char s[20];
int i,j,flag=0;
system("cls");
printf("请输入要修改的合同名:\n");
scanf("%s",s);
for(i=0;i<n;i++)
{
if(strcmp(s,t[i].name)==0)
{ flag=1;
system("cls");
printf("\n\n*********************************ADDRESS*************************** ********\n");
printf("编号姓名金额甲方乙方等级生效日期到期日期是否完成\n");
printf("---------------------------------------------------------------------------\n");
scanf("%-6d%-20s%-20f",t[i].num,t[i].name,t[i].money);
scanf("%-15s%-15s%-15d%-15d%-15s%-15\n",t[i].jia,t[i].yi,t[i].classify,t[i].creatline,t[i].deadline ,t[i].carryout);
} }
if(flag==0)
printf("查无此人!!\n");
return n;
}
void SortOnNum(AddressBook t[],int n)
{ int i,j,flag;
AddressBook temp;
for(j=1;j<n;j++)
for(i=0;i<n-j;i++)
if(t[i].num>t[i+1].num)
{
temp=t[i];
t[i]=t[i+1];
t[i+1]=temp;
}
printf("排序成功!!!\n");
}
int quantityonjia(AddressBook t[])
{ int i,n=0;
system("cls");
for(i=0;i<n;i++)
{ printf("第%d条合同的甲方:",i+1);
scanf("%s",t[i].jia);
n++;}
return(n);
}
/*保存函数,参数为结构体数组和记录数*/
void SaveRecord(AddressBook t[],int n)
{
int i;
FILE *fp; /*指向文件的指针*/
if((fp=fopen("record.txt","w"))==NULL)
{
printf("can not open file\n");
exit(1);
}
fprintf(fp,"%d",n);
fprintf(fp,"\r\n");
for(i=0;i<n;i++)
{
fprintf(fp,"%-6d%-20s%-20f",t[i].num,t[i].name,t[i].money);
fprintf(fp,"%-15s%-15s%-15d%-15d%-15s%-15\n",t[i].jia,t[i].yi,t[i].classify,t[i].creatline,t[i].dead line,t[i].carryout);
fprintf(fp,"\r\n");
}
fclose(fp);/*关闭文件*/
}
/*读入函数,参数为结构体数组*/
int LoadRecord(AddressBook t[])
{
int i,n;
FILE *fp;
if((fp=fopen("record.txt","a+"))==NULL)
{
printf("can not open file\n");
exit(1);
}
fscanf(fp,"%d",&n);
for(i=0;i<n;i++)
fscanf(fp,"%6d%20s%20f%-15s%-15s%-15d%-15d%-15s%-15\n",&t[i].num,t[i].name,t[i].money ,t[i].jia,t[i].yi,t[i].classify,t[i].creatline,t[i].deadline,t[i].carryout);
fclose(fp);
printf("从文件中成功读出记录!!!\n");
return n;
}
你把完整的代码发一下
这是JSP界面的某一个事件触发需要id为dd的div,这个div里面什么都没有
<div id="dd"></div>
然后就是在这个事件function里有语句
var dd = document.getElementById("dd");
dd.innerHTML += "<div> <img id='img1' /><div ><input type='button' onclick=\"deleteimg()\" id='deleteimg' value='删除'/></div></div>";
然后我为了检查那个deleteimg的方法是否能执行,我就写了一个特别简单的句子
function deleteimg(){
alert("确认删除?");
}
然后在谷歌上看点击删除,就是没有反应,我查了一下,有人说那个innerHTML里面是文本形式写入的,写入的事件不会被触发
还有就是我没有写js,代码少就全在<script>标签里写的function
首页,通过innerHTML写入的字符串会被解析成html;其次,感觉按你的思路来都看不出有问题,方便的话还是截个图吧。之前也不知道为什么不可以,,现在也不知道做了什么操作,就行了,多谢各位指导