如何将函数写成对象方法,求教。

zgzglike 2011-07-28 10:55:14
加精

function next(elem){
do{
elem = elem.nextSibling;
}while( elem && elem.nodeType != 1 )
return elem;
}

var o = document.getElementsByTagName('h1')[0]
alert(next(o).innerHTML) //这样我可以 获得 h1的 next 元素的innerHTML



我的问题是 怎么改 ,可以写成 o.next().innerHTML 这种样式
...全文
2246 82 打赏 收藏 转发到动态 举报
写回复
用AI写文章
82 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzzzzzzzzzzzww 2011-08-04
  • 打赏
  • 举报
回复
是不是啊 真的吗??那我要学习咯
YHL27 2011-08-04
  • 打赏
  • 举报
回复
学习。。
cocosasa 2011-08-02
  • 打赏
  • 举报
回复
都是人才额~~~
daozei115 2011-08-02
  • 打赏
  • 举报
回复
学习了。。谢谢分享
赟阳 2011-08-01
  • 打赏
  • 举报
回复
学习学习
zack_hoo 2011-08-01
  • 打赏
  • 举报
回复
好贴就是得顶!
Mrgive 2011-08-01
  • 打赏
  • 举报
回复
学习 学习 支持楼主
samyou 2011-08-01
  • 打赏
  • 举报
回复
学习了。
happyswift761130 2011-08-01
  • 打赏
  • 举报
回复
学习了!
cyf563837 2011-07-31
  • 打赏
  • 举报
回复
好东西,顺便接点分
O溺水的鱼0 2011-07-31
  • 打赏
  • 举报
回复
[Quote=引用 70 楼 joeycih 的回复:]

HTML code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">……
[/Quote]

这个就可以实现,在IE6也是兼容的。
javascript中所有大写开头的对象都是可以new的,唯一一个可以new的(同样可以扩展prototype链)的小写对象就是function,其他小写对象都是不可以new的。
gahyyai 2011-07-31
  • 打赏
  • 举报
回复
mark
joeycih 2011-07-31
  • 打赏
  • 举报
回复
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">

<script type="text/javascript">
function MyElements(tagname){
this.elem = document.getElementsByTagName(tagname)[0];
}
MyElements.prototype = {
constructor : MyElements,
next : function(){
do{
this.elem = this.elem.nextSibling;
}while( this.elem && this.elem.nodeType != true )

return this.elem;
}
}

window.onload=function(){
var elements1 = new MyElements("h1");
alert(elements1.next().innerHTML );
}

</script>
</HEAD>

<BODY>
<h1>h1</h1>
<h1>h2</h1>
<h1>h3</h1>
<h1>h4</h1>
<h1>h5</h1>
<h1>h6</h1>
<h1>h7</h1>
<h1>h8</h1>
</BODY>
</HTML>
qq852060542 2011-07-31
  • 打赏
  • 举报
回复
哦外孙发放哈数据库
qq852060542 2011-07-31
  • 打赏
  • 举报
回复
elem = document.getElementById(selector);
if( elem ){
this[0] = elem;
}
return this
},
html : function(){
return this[0].innerHTML;
},
next : function(){
var elem = this[0];
do{
elem = elem.nextSibling;
}while( elem && elem.nodeType != 1)
return elem;
}
sadsad
qq852060542 2011-07-31
  • 打赏
  • 举报
回复
elem = document.getElementById(selector);
if( elem ){
this[0] = elem;
}
return this
},
html : function(){
return this[0].innerHTML;
},
next : function(){
var elem = this[0];
do{
elem = elem.nextSibling;
}while( elem && elem.nodeType != 1)
return elem;
}
T_mcgrady 2011-07-31
  • 打赏
  • 举报
回复
不是C++吧,看的不太懂。
hr360 2011-07-30
  • 打赏
  • 举报
回复
不错,推荐啊.
xft126 2011-07-30
  • 打赏
  • 举报
回复
多看看书,
wo554006164 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 38 楼 zgzglike 的回复:]

引用 37 楼 wo554006164 的回复:
引用 35 楼 zgzglike 的回复:

引用 28 楼 wo554006164 的回复:
引用 21 楼 zgzglike 的回复:

引用 19 楼 lsw645645645 的回复:
引用 4 楼 zgzglike 的回复:
那 jQuery $('test').next() 这样怎么实现的(本人入门,看jquery源码……
[/Quote]
可以用 $('test')[0] 返回 elem 对象,但是这样返回就没有next 、 html 方法了
只有 jQuery 才有 next、html 方法,所以返回对象必须是jQuery
加载更多回复(44)

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧