jquery中this和$(this)的区别?
1.
var content = [
{
"term":"CBDICATION",
"part":"n.",
"definition":"C CCKNOWLEDGE C abdication "
},
{
"term":"CBOUT",
"part":"adv.",
"definition":"The CBOUT CC customers and bills is stored in the other system (such as emp) " + "The CCC can be CBOUT to the FEP directly or through the MidwareServer."
}
];var html = "";
$.each(content,function(){
html += "<div class='entry'>";
html += "<h3 class='term'>" + this["term"] + "</h3>"; //用的是this,而不是$(this)???
html += "<div class='part'>" + this["part"] + "</div>";
html += "<div class='definition'>" + this["definition"] + "</div>";
html += "</div><hr>";
});
在$.each()中的用的this["trem"],而不是$(this)??2.
// var html = ""; //注意这个声明!!
$.get("d.xml",function(data){
//"d.xml"是一个xml文件,这里就是加载一个xml文件,并解析其中的内容
var html = ""; //注意这个声明!!!!
$(data).find("entry").each(function(){
var $entry = $(this); //这里用的是$(this),而不是this????
html += "<div class='entry'>";
html += "<h3 class='term'>" + $entry.attr("term") + "</h3>";
html += "</div>";
});
$("#dictionary").html(html); //将hmtl内容填充到id的dictionary的标签下
});
//alert(html);
//$("#dictionary").html(html);关于2的另一个问题:在声明html行: var html="";如果我将此行的声明放在$.get()方法外,alert的内容为空,因此后面的填充也没有内容,按理说,在get方法外面声明的变量在alert的时候应该是有效的,怎么会没有内容了,请高手指点,不胜感激!!注:这两段代码功能上没有问题,只是小弟有这两个疑问,如果不清楚为什么,可能以后会范同样的错误
1.
var content = [
{
"term":"CBDICATION",
"part":"n.",
"definition":"C CCKNOWLEDGE C abdication "
},
{
"term":"CBOUT",
"part":"adv.",
"definition":"The CBOUT CC customers and bills is stored in the other system (such as emp) " + "The CCC can be CBOUT to the FEP directly or through the MidwareServer."
}
];var html = "";
$.each(content,function(){
html += "<div class='entry'>";
html += "<h3 class='term'>" + this["term"] + "</h3>"; //用的是this,而不是$(this)???
html += "<div class='part'>" + this["part"] + "</div>";
html += "<div class='definition'>" + this["definition"] + "</div>";
html += "</div><hr>";
});
在$.each()中的用的this["trem"],而不是$(this)??2.
// var html = ""; //注意这个声明!!
$.get("d.xml",function(data){
//"d.xml"是一个xml文件,这里就是加载一个xml文件,并解析其中的内容
var html = ""; //注意这个声明!!!!
$(data).find("entry").each(function(){
var $entry = $(this); //这里用的是$(this),而不是this????
html += "<div class='entry'>";
html += "<h3 class='term'>" + $entry.attr("term") + "</h3>";
html += "</div>";
});
$("#dictionary").html(html); //将hmtl内容填充到id的dictionary的标签下
});
//alert(html);
//$("#dictionary").html(html);关于2的另一个问题:在声明html行: var html="";如果我将此行的声明放在$.get()方法外,alert的内容为空,因此后面的填充也没有内容,按理说,在get方法外面声明的变量在alert的时候应该是有效的,怎么会没有内容了,请高手指点,不胜感激!!注:这两段代码功能上没有问题,只是小弟有这两个疑问,如果不清楚为什么,可能以后会范同样的错误
$(this)是jQuery对象
前者不能使用jQuery的方法
后者不能使用dom的方法但是2者可以转换
前者套上$()即可
后者$(this).get(n)即可
所以没有呗
谢谢第一个问题的解答,
第二个问题貌似我没说清楚
我是说我把var html=""的声明移到外面去,.get()方法内就不在声明了,
然后在.get()方法外调用$("#dictionary").html(html);这个时候html的内容为空
$.ajaxSetting.async = false;放在get的前面试试看
get里面的方法能不能调试啊。
我把$("#dictionary").html(html);放到get()方法内调用就能得到结果,看来的确是异步的原因了
但是这个$.ajaxSetting.async = false;貌似不对,是不是其他参数?希望仁兄告知
感谢
jQuery也有这个属性,只是我忘了可开放出来呢~
是说不能alert()吗?