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 ...
随机推荐
- ubuntu 查看端口被占用并处理
当启动程序出现端口号被占用的情况,需要查看端口使用情况,使用netstat命令,下面是常用的几个查看端口情况的命令:查看所有的服务端口(ESTABLISHED netstat -a查看所有的服务端口, ...
- android SDK开发 -- TitleBar封装(一)
假设app的title 统一的都是这种左中右结构的 代码如下 <LinearLayout xmlns:android="http://schemas.android.com/apk/r ...
- MySQL存储过程详解 mysql 存储过程(二)
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL ...
- canvas --> getImageData()
getImageData() 使用时有跨域问题 设置img的属性 crossOrigin="anonymous"可解决crossOrigin的问题 <img src=&quo ...
- Python文件操作方法
python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有 ...
- DbProviderFactories.GetFactory Oracle.ManagedDataAccess.Client
因为最近项目,要使用微软的EF框架不安装Oracle客户端的情况下,访问Oracle数据库.调用如下代码的时候会报错. System.Data.Common.DbProviderFactories.G ...
- iOS子线程操作UI问题检查
iOS开发中,因为大部分函数都不是线程安全的,所以UI子线程中操作UI是非常危险的事,但是有时候因为开发者经验不足,不知道子线程中不能UI,或者知道但是写代码的时候没注意,或者不知道那些函数操作UI了 ...
- java测试1
发大水 package com.java1234.activiti.variable; import java.util.Date; import java.util.HashMap; import ...
- Log4j实现对Java日志的配置全攻略
1. 配置文件 Log4J配置文件的基本格式如下: #配置根Logger log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , ...
- Static Class (静态类)
一般情况下是不可以用static修饰类的.如果一定要用static修饰类的话,通常static修饰的是匿名内部类. 在一个类中创建另外一个类,叫做成员内部类.这个成员内部类可以静态的(利用static ...