最近也是在做项目的时候刚接触到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中常见问题的更多相关文章

  1. jquery中常见问题及解决办法小结

    1 在开发开放聊天室的过程中,遇到使用ajax提交表单插入数据库时会插入两条数据的情况 解决办法,在ajax函数返回后,return false. $("#btn").click( ...

  2. jQuery中 $ 符号的冲突问题

    jQuery中 $ 符号的冲突问题是常见问题之一.   在jQuery中,$是jQuery的别名,为了书写方便,我们更习惯用$('#id')这一类的方式来书写代码.当同一页面引用了jQuery多个版本 ...

  3. [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...

  4. JQuery中的工具函数总结

    前提引入 前提当然也是要引入Jquery啦... <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" typ ...

  5. JQuery中ajax的相关方法总结

    前提条件 话说是jquery中的ajax方法,那么前提条件当然是引入jquery啦. <script src="http://libs.baidu.com/jquery/1.9.0/j ...

  6. JavaScript jQuery 中定义数组与操作及jquery数组操作

    首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...

  7. jQuery中的100个技巧

      1.当document文档就绪时执行JavaScript代码. 我们为什么使用jQuery库呢?原因之一就在于我们可以使jQuery代码在各种不同的浏览器和存在bug的浏览器上完美运行. < ...

  8. jquery中ajax用return来返回值无效

    jquery中,ajax返回值,有三种写法,只有其中一种是成功的 /** * async:false,同步调用 * 返回1:2 * 失败 * 分析:ajax内部是一个或多个定义的函数,ajax中ret ...

  9. JQuery中$.each 和$(selector).each()的区别详解

    PS:晚上在写页面时,发现了一个问题,$.each 和$(selector).each()有哪些区别?百度搜索关键词,首页显示出来一些前人的经验,总结一下,发上来. 1.$(selector).eac ...

随机推荐

  1. javascript中this的解析

    在JavaScript中,this 的概念比较复杂.除了在面向对象编程中,this 还是随处可用的.这篇文章介绍了this 的工作原理,它会造成什么样的问题以及this 的相关例子. 要根据this  ...

  2. Java序列化的机制和原理

    Java序列化的机制和原理 本文讲解了Java序列化的机制和原理.从文中你可以了解如何序列化一个对象,什么时候需要序列化以及Java序列化的算法. 有关Java对象的序列化和反序列化也算是Java基础 ...

  3. 局部线性嵌入(LLE)原理总结

    局部线性嵌入(Locally Linear Embedding,以下简称LLE)也是非常重要的降维方法.和传统的PCA,LDA等关注样本方差的降维方法相比,LLE关注于降维时保持样本局部的线性特征,由 ...

  4. 多核CPU利用测试

      一直在想程序上是否特意让线程在指定的CPU上去运行,这样可以提高运行效率,所以特地写个代码让CPU使用率画正弦曲线的实验,我使用的是AMD X4 641的CPU,为四核四线程的片子. 代码如下 # ...

  5. StringBuilder和string.Format性能对比

    本文由博主(YinaPan)原创,转载请注明出处:http://www.cnblogs.com/YinaPan/p/sbformat.html StringBuilder的性能优于string.For ...

  6. cocos2d-x 实现沙子特效

    效果图. 说明. 标题取的不好, 原因是我也不知道这效果应该叫什么. 大概效果是这样的, 随着鼠标按下并且移动, 所到之处所有磁铁都将扩散. 就好比鼠标是一个圆形区域去排挤在场的磁铁. 话不多说, 直 ...

  7. 浅谈intval()函数用法

    <? } } 总结:intval()函数功能1.参数一定是数字否则会报错,2.如果是数字那一定是整数,如果有小点,那会省略掉,3,强调参数可以有“-”值.4.参数第一位不应为0开头,不然会自动转 ...

  8. Python新手学习基础之数据结构-序列1

    序列概念 序列,顾名思义就是有顺序的列,在Python里序列类型的数据结构包括字符串,列表和元组.既然都是序列类型,说明他们有很多共通点,他们的每一个元素都可以通过指定的偏移量方式(索引操作)来获得, ...

  9. Python Django开始

    1.创建工程 C:\procedure\projects>django-admin startproject mysite 2.同步数据库 C:\procedure\projects\mysit ...

  10. Activity完整的生命周期

    首语:群里看到一位网友说:你能说出Activity的完整生命周期吗?看到这句话,我也在反思自己,我也是个fresh,所以想找个时间仔细的扒一扒Activity生命周期. 首先拿一张简单而又复杂的生命周 ...