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 之路,Day27 - 主机管理+堡垒机系统开发
python 之路,Day27 - 主机管理+堡垒机系统开发 本节内容 需求讨论 构架设计 表结构设计 程序开发 1.需求讨论 实现对用户的权限管理,能访问哪些机器,在被访问的机器上有哪些权限 实 ...
- Java反射和动态代理
Java反射 反射机制 RTTI 编译器在编译时打开和检查*.class文件 反射机制 运行时打开和检查*.class文件 Java反射常见的方法 java反射的应用 setAccessible(bo ...
- My.Ioc 代码示例——使用条件绑定和元数据(可选)构建插件树
本文旨在通过创建一棵插件树来演示条件绑定和元数据的用法. 说“插件树”也许不大妥当,因为在一般观念中,谈到插件树,我们很容易会想到 Winform/Wpf 中的菜单.举例来说,如果要在 Winform ...
- model 和 view 实现思考
采用model.view = view 和 view.model=model 进行双向绑定,还有一种方案是采用id号进行绑定,viewmodel的views 和 models 属性存放所有的id 映 ...
- CSP内容安全策略
在浏览网页的过程中,尤其是移动端的网页,经常看到有很多无关的广告,其实大部分广告都是所在的网络劫持了网站响应的内容,并在其中植入了广告代码.为了防止这种情况发生,我们可以使用CSP来快速的阻止这种广告 ...
- 【转】C++之内部类(嵌套类)与外部类及友元
[转]http://baike.baidu.com/link?url=Md223wQoT5s-3cZ5xRnj1pGmvm310DKAuh-HDrcEdc2l24rwobHrdEc_Mi4Z3BGP0 ...
- Centos 6安装python3.5
安装python3.5 安装步骤如下 :1 准备编译环境(环境如果不对的话,可能遇到各种问题,比如wget无法下载https链接的文件) yum groupinstall 'Development T ...
- 如何把powerpoint幻灯片大小改为标准或宽屏教程【图文】
不知道大家还记得早期powerpoint版本,幻灯片的形状是较方(4:3),随着科技的发展,很多电视.视频都在用宽屏,powerpoint自然也是如此,现在默认的幻灯片大小是宽屏 (16:9),怎么把 ...
- Spark Executor Driver资源调度小结【转】
一.引子 在Worker Actor中,每次LaunchExecutor会创建一个CoarseGrainedExecutorBackend进程,Executor和CoarseGrainedExecut ...
- Unable to boot device in current state: Creating
安装完xcode6.1后,将其改名为Xcode6.1.app,再移动个位置,启动模拟器,问题来了: Unable to boot device in current state: Creating 解 ...