新足迹

 找回密码
 注册

精华好帖回顾

· 愤怒、自由、理想与爱 —— 怀念家驹 (2007-5-21) 木头 · 我的澳洲Outback游记 – Alice Springs & Uluru背包行 (2014-5-18) steprego
· 煮夫手记二十五 庆六一 炸三样 (2011-5-31) amon54 · 煮夫手记十三 京东肉饼 最是那第一口的诱惑 (2011-2-22) amon54
Advertisement
Advertisement
查看: 1231|回复: 14

Javascript front end question - Ajax related [复制链接]

发表于 2011-1-21 09:11 |显示全部楼层
此文章由 porcorosso 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 porcorosso 所有!转贴必须注明作者、出处和本声明,并保持内容完整
I am doing maintenance to old native javascript codings.

Scenario:
I do a AJAX call, returning something like this:
<div id="new_el">This is new content</div>

I bind this returned content back to the main content by simply doing this:
document.getElementById('target').innerHTML = returnedString;

Problem:
document.getElementById('new_el') does not return me anything. I have done both exeScript() and eval() to try binding the id into main content but no help.

Now I need your help. Thanks.
Advertisement
Advertisement

发表于 2011-1-21 09:17 |显示全部楼层
此文章由 nextstep 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nextstep 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Did hues ID new_el  somewhere else on the main content?

特殊贡献奖章

发表于 2011-1-21 09:23 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
试试把document.getElementById('new_el')写在ajax call里面看能得到值吗

发表于 2011-1-21 09:29 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
check out dom insertion using jQuery:

http://api.jquery.com/category/manipulation/dom-insertion-inside/

http://api.jquery.com/category/m ... -insertion-outside/


具体用append 还是insert 根据你个人的需要了

如果你实在想用population的方式,可以用$('#target').text(returnedString);

[ 本帖最后由 乱码 于 2011-1-21 13:36 编辑 ]

发表于 2011-1-21 09:30 |显示全部楼层
此文章由 porcorosso 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 porcorosso 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Found that the ID will never be registered into main content after returning. you can easily write a test script to prove i am write.

Anyway just to share this function, to overcome the problem i have.
  1. function getElementsByTagnameThenID(tagName, ID)
  2. {
  3.         try {
  4.                 var tables = document.getElementsByTagName(tagName);
  5.                 if(tables.length>0)
  6.                 {
  7.                         for(var i=0; i<tables.length; i++){
  8.                                 if(tables[i].id == ID)
  9.                                         return tables[i];
  10.                         }
  11.                 }
  12.         }catch(e){
  13.                 return null;
  14.         }
  15. }
复制代码
hope you find it useful

[ 本帖最后由 porcorosso 于 2011-1-21 10:34 编辑 ]

发表于 2011-1-21 09:30 |显示全部楼层

回复 2# 的帖子

此文章由 porcorosso 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 porcorosso 所有!转贴必须注明作者、出处和本声明,并保持内容完整
the ajax returned content will have an element with id 'new_el', and the returned content will be inserted into main content as part of content.
Advertisement
Advertisement

发表于 2011-1-21 09:31 |显示全部楼层
此文章由 porcorosso 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 porcorosso 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kr2000 于 2011-1-21 10:23 发表
试试把document.getElementById('new_el')写在ajax call里面看能得到值吗



will not get

发表于 2011-1-21 09:32 |显示全部楼层
此文章由 porcorosso 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 porcorosso 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 乱码 于 2011-1-21 10:29 发表
check out dom insertion using jQuery:

http://api.jquery.com/category/manipulation/dom-insertion-inside/

http://api.jquery.com/category/m ... -insertion-outside/


具体用append 还是insert  ...


was using native javascript, no framework... i thought of using jquery by the existing code have registered '$' function already, which is native jquery alias

*** crying ***

发表于 2011-1-21 09:34 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 porcorosso 于 2011-1-21 10:32 发表


was using native javascript, no framework... i thought of using jquery by the existing code have registered '$' function already, which is native jquery alias

*** crying ***


不需要用$,直接写jQuery代替$,他们两个一样的

或者 http://api.jquery.com/jQuery.noConflict/

[ 本帖最后由 乱码 于 2011-1-21 10:40 编辑 ]

发表于 2011-1-21 09:39 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
贴个精简后的source code上来 :)

发表于 2011-1-21 10:21 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
with jquery you can do $("#target").load(),  
or $("#target").html()
Advertisement
Advertisement

2010年度奖章获得者

发表于 2011-1-21 16:34 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Its like sex

U need to keep trying

To find best spot

评分

参与人数 1积分 +2 收起 理由
porcorosso + 2 I服了U!

查看全部评分

发表于 2011-1-21 16:49 |显示全部楼层
此文章由 psveind 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 psveind 所有!转贴必须注明作者、出处和本声明,并保持内容完整
好像要 document.createElement("div")?

评分

参与人数 1积分 +2 收起 理由
porcorosso + 2 答对了,IE必须这样

查看全部评分

发表于 2011-1-22 09:04 |显示全部楼层
此文章由 不会游泳的鱼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 不会游泳的鱼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
DOM Object在页面load完后就不会刷新的了吧。

发表于 2011-1-22 09:51 |显示全部楼层
此文章由 zhilaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zhilaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lz 确定不是拼写错误引起的?你所举的这种Scenario非常常见阿,应该说不可能出现你所说的这种问题。把有问题的代码贴出来看看吧。

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部