最近也是在做项目的时候刚接触到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. 转载:C# 之泛型详解

    本文原地址:http://www.blogjava.net/Jack2007/archive/2008/05/05/198566.html.感谢博主分享! 什么是泛型 我们在编写程序时,经常遇到两个模 ...

  2. 从一个SVN下载的导入另一个SVN里面

    如果项目是你从个一个SVN下载的,你想存入另一个SVN里面 那么问题来了 你用eclipse的team的时候会发现没有Team share 这个选项,那么就等于是没有上传的选项了 解决办法,把项目删掉 ...

  3. Hadoop配置项整理(mapred-site.xml)【转】

    本文转自:http://slaytanic.blog.51cto.com/2057708/1101360 name value Description hadoop.job.history.locat ...

  4. 更改tabBarItem图片的问题

    代码: UIImage *normal = [[UIImage imageNamed:@"tabbar_home_default"] imageWithRenderingMode: ...

  5. Ubuntu12.4 64位 安装 arm linux gcc 4.3.2

    一.下载arm linux gcc 4.3.2 http://pan.baidu.com/share/link?shareid=1575352696&uk=2754759285&fid ...

  6. 【转】C++之内部类(嵌套类)与外部类及友元

    [转]http://baike.baidu.com/link?url=Md223wQoT5s-3cZ5xRnj1pGmvm310DKAuh-HDrcEdc2l24rwobHrdEc_Mi4Z3BGP0 ...

  7. Yii 框架里数据库操作详解

    增:1 第一种 $post=new Post; $post->title='sample post'; $post->content='content for the sample pos ...

  8. windows下Django 部署到Apache24的配置

    1.首先下载最新版Apachehttp://httpd.apache.org/download.cgi#apache24,目前官方以不提供windows msi安装包,下载好的直接解压至C盘即可,ap ...

  9. C# ORM—Entity Framework 之Code first(代码优先)(二)

    一.Entity Framework Code first(代码优先)使用过程 1.1Entity Framework 代码优先简介 不得不提Entity Framework Code First这个 ...

  10. map 和 reduce

    注意:reduce需要 from functools import reduce map的使用: >>> def func(x): ... return x*x ... >&g ...