Jquery中常见问题
最近也是在做项目的时候刚接触到jQuery。下面汇总一下遇到的几个问题
如何动态创建按钮
方式一: $("#a").html("<input type='button' value='按钮' class='button‘/>");
方式二: $("#a").append("<input type='button' value='按钮' class='button‘/>");
<input type="button" id="add_html" value="使用html方法增加"/>
<input type="button" id="add_append" value="使用append方法增加"/> <div id="a">
<p>添加一个按钮的地方:</p>
</div> <script src="~/Scripts/jquery-1.7.1.js" type="text/javascript"></script> <script type="text/javascript">
$(function () {
$("#add_html").click(function () {
$("#a").html("<input type='button' value='按钮' class='button'/>");
}) $("#add_append").click(function(){
$("#a").append("<input type='button' value='按钮' class='button'/>");
})
})
</script>
两种做法得到的效果是:
html只会在标签处生成相应的按钮,即不管点几下,都只生成一个按钮
append是在标签的最后添加,点一次,就会出现一个按钮

还有一种方法是
$("#add").click(function () {
$("<input type='button' value='新按钮' class='button'/>").insertAfter("#a");
$("<input type='button' value='新按钮' class='button'/>").insertBefore("#a");
})
如何对动态添加的按钮绑定事件
上面所讲的生成的按钮就是动态按钮(由脚本创建的新元素),我们通常使用的click事件
$('.button').click(function(){});
只能绑定到页面中当前存在的对象,而对于动态生成的对象不能绑定
这里就用到两种方法 : on()方法或者deletege()方法
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<input type="button" id="add_append" value="使用append方法增加"/>
<div id="abc">
<input type="button" class="button" value="按钮"/>
<div id="a">
<p>添加一个按钮的地方:</p>
</div>
</div>
<script src="~/Scripts/jquery-1.7.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("#add_append").click(function () {
$("#a").append("<input type='button' value='新按钮' class='button'/>");
})
//以下两种方法都可以实现
//添加元素必须是某一个元素的子元素
//$("#abc").on("click", ".button", function () {
// alert("1");
//})
$("#abc").delegate(".button", "click", function () {
alert("1");
})
})
</script>
元素的定位
- children()只能向下遍历一级(子元素); find()可以找出所有后代元素
- $("tr td") tr的所有后代元素td; $("tr>td") tr的子元素td
- parent 父元素; cloest 最近的祖先元素
- 按层次查找元素 $("#a b c d") 每一层次所在的元素个数必须是一个(each方法的最后一个除外)
方法定义相关
1. 定义数组
var aArray={}
使用的时候 aArray[i]
var aArray = {};
var i = 0;
$.each($("#"+TableId+" > tbody >tr"), function (index, item) {
if ($(this).children("td").first().find("input").attr("checked") == 'checked') {
aArray[i] = $(this).children("td").last().find("input").val();
i++;
}
});
2.this参数
以$(this)作为参数(实参),以$this作为形参
使用的时候 $this = $this
function Com($this, keyValue) {
var aArray = {};
var i = 0;
var $this = $this;
$.each($this.parent("div").prev("table").children("tbody").children("tr"), function (index, item) {
if ($(this).children("td").first().find("input").attr("checked") == 'checked') {
aArray[i] = $(this).children("td").last().find("input").val();
i++;
}
})
})
$("#emission").delegate(".add", "click", function () {
Com($(this), "inKey");
})
常用方法
ajax方法
定义和用法
ajax() 方法通过 HTTP 请求加载远程数据。
该方法是 jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性。
最简单的情况下,$.ajax() 可以不带任何参数直接使用。
注意:所有的选项都可以通过 $.ajaxSetup() 函数来全局设置。
$.each($(".EnumClass"), function (index, item) {
var enumvalue = $(this).prev("select").val();
var typename = $(this).attr("id").toString();
var enumIndex;
$.ajax({
type: 'POST',
url: '/Enum/StringToInt',
async:false,
data: { typeName: typename, enumValue: enumvalue },
success: function (result) {
enumIndex = result;
}
})
$(this).val(enumIndex);
})
注意两个问题:
1.async属性很重要,表示是否是异步调用此方法。如果true表示异步,表示两个方法可以同时执行。引起的问题可能是方法二可能会用到方法一执行完的结果,这些就不能设置异步运行
2.在success方法里是不能使用jquery选择器的。
常用的控件
My97datepicker 非常好用的日期控件
Jquery中常见问题的更多相关文章
- jquery中常见问题及解决办法小结
1 在开发开放聊天室的过程中,遇到使用ajax提交表单插入数据库时会插入两条数据的情况 解决办法,在ajax函数返回后,return false. $("#btn").click( ...
- jQuery中 $ 符号的冲突问题
jQuery中 $ 符号的冲突问题是常见问题之一. 在jQuery中,$是jQuery的别名,为了书写方便,我们更习惯用$('#id')这一类的方式来书写代码.当同一页面引用了jQuery多个版本 ...
- [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...
- JQuery中的工具函数总结
前提引入 前提当然也是要引入Jquery啦... <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" typ ...
- JQuery中ajax的相关方法总结
前提条件 话说是jquery中的ajax方法,那么前提条件当然是引入jquery啦. <script src="http://libs.baidu.com/jquery/1.9.0/j ...
- JavaScript jQuery 中定义数组与操作及jquery数组操作
首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...
- jQuery中的100个技巧
1.当document文档就绪时执行JavaScript代码. 我们为什么使用jQuery库呢?原因之一就在于我们可以使jQuery代码在各种不同的浏览器和存在bug的浏览器上完美运行. < ...
- jquery中ajax用return来返回值无效
jquery中,ajax返回值,有三种写法,只有其中一种是成功的 /** * async:false,同步调用 * 返回1:2 * 失败 * 分析:ajax内部是一个或多个定义的函数,ajax中ret ...
- JQuery中$.each 和$(selector).each()的区别详解
PS:晚上在写页面时,发现了一个问题,$.each 和$(selector).each()有哪些区别?百度搜索关键词,首页显示出来一些前人的经验,总结一下,发上来. 1.$(selector).eac ...
随机推荐
- python简单小爬虫爬取易车网图片
上代码: import requests,urllib.request from bs4 import BeautifulSoup url = 'http://photo.bitauto.com/' ...
- python-查询员工信息表
python查询员工信息表 基本要求: 用户可以模糊查询员工信息 显示匹配了多少条,匹配字符需要高亮显示 代码: #!/usr/env python #coding:utf-8 import time ...
- IOS 开发 【序】
首先说说环境的搭建: 需要有一台搭载开发环境的电脑 其实简单的设备就行,不过好的设备会提高开发效率. 有了设备,剩下的就是需要集成开发环境. 去 app store 下载最新的 xcode. 安装上x ...
- 解决ASP.NET中ReportView与IE11的兼容性问题
前久发现以前用ReportView开发的一个软件的报表,在IE11上运行时出错,陆续查了好几天才解决了问题. 开发环境: VS2010,ReportView 10.0.402,RDLC报表模板 问题: ...
- class-loader.
the jdk hierarchical relationship of class-loader ----Module Class Loading and Bootstrapping---- boo ...
- 关于typedef int(*lpAddFun)(int, int)
lpAddFun是typedef定义的一个名称 可以用来定义变量 比如 lpAddFun p; 那 p就是 int(*p)(int, int); 首先(*p)说明p是一个指针,(*p)();说明p指向 ...
- 《C# 并发编程 · 经典实例》读书笔记
前言 最近在看<C# 并发编程 · 经典实例>这本书,这不是一本理论书,反而这是一本主要讲述怎么样更好的使用好目前 C#.NET 为我们提供的这些 API 的一本书,书中绝大部分是一些实例 ...
- 3.AOP入门1
1.定义1.1基本概念2. 1.定义 1.1基本概念 AOP:aspect object programing面向切面编程 aop编程的要点在于关注点和切入点 关注点:指的是代码中的重复部分,每次实现 ...
- TalkingData游戏版本在Cocos2d-x 3.2使用
最近一直忙别的方面的事情,没有太关注cocos2dx的发展情况,竟然已经更新到了3.2的版本,总的来说3.2比较3.0在使用上会有一些路径的变成,包括ios的引用路径和android上的build的p ...
- c语言中3n+1溢出问题解决
3n+1问题是一个简单有趣而又没有解决的数学问题.这个问题是由L. Collatz在1937年提出的.克拉兹问题(Collatz problem)也被叫做hailstone问题.3n+1问题.Hass ...