谁帮我看看这段代码的问题关于nextSibling获得不了值

问题描述

代码片段function txtProductCountBlurred(txt_product_count){ var s_product_count = txt_product_count.value.trim(); var txt_o_product_count = txt_product_count.nextSibling; //old hidden product couunt var o_product_count =txt_o_product_count.value.trim(); 。。。。。。。。。。。}html代码<td class="carttd-4"><input value="<%=num%>" onkeypress=" if((arguments[0] || window.event).keyCode==13)txtProductCountBlurred(this);" onblur="txtProductCountBlurred(this);" class="cartcurrent"/><input type="hidden" value="<%=num%>" /></td>执行到var o_product_count =txt_o_product_count.value.trim();就不行了??不知道什么原因啊

解决方案

nextSibling就是指下一个兄弟元素.引用var o_product_count =txt_o_product_count.value.trim();就不行了是因为txt_product_count.nextSibling的结果并不是<input type="hidden" value="<%=num%>" />元素, 而是因为<input value="<%=num%>" onkeypress=" if((arguments[0] || window.event).keyCode==13)txtProductCountBlurred(this);" onblur="txtProductCountBlurred(this);" class="cartcurrent"/>不和<input type="hidden" value="<%=num%>" />在同一行, 所以txt_product_count.nextSibling是这两个元素之间的一个空的回车(或是空的字符), 所以引用var txt_o_product_count = txt_product_count.nextSibling得到的实际上就这个空字符串, 可以打出txt_o_product_count.nodeValue来证实这一点.如果想用这个函数来拿到第二个input元素, 要将这个input写在同一行, 也就是;...urred(this);" class="cartcurrent"/><input type="hidden" value="<%=num%>" />中间不要有空格.ps: 我测试的时候发现我的ff不好像不支持trim()这个函数, 如果楼主按上面的没有结果, 把trim()这个函数去掉在试.
解决方案二:
哈哈, 显然我是一个js外行!
解决方案三:
Javascript中根本没有trim()这个函数.所以会报对象没有此方法或属性的错误.nextSibling得不到是由于两个标签之间出现了间隔.浏览器会把每个文本当做一个TextNode对象(Javascript中并没有TextNode对象,这里只是起一个说明作用)进行处理.所以你得到的nextSibling就是一个空字符串组成的TextNode对象.所以得到的txt_o_product_count是一个对象.但是调用它的value属性就会报错.第一点可以通过自己写一个trim函数进行处理.第二个问题把两个input之间的间隔去掉就可以了.

时间: 2024-10-22 11:02:44

谁帮我看看这段代码的问题关于nextSibling获得不了值的相关文章

process-请大家帮我看看两段代码的区别真想不明白了

问题描述 请大家帮我看看两段代码的区别真想不明白了 有两段代码 代码一是单独写成函数来调用的, 我把他们合成一个主函数的代码 就出错 ?好像是变量递增的问题,我怎么也想不通,麻烦大家了. 代码一 ?别人写的: #include #include #include #include #pragma comment(lib,"Psapi.lib") int FindModules( DWORD processID ) { ? ? HMODULE hMods[1024]; ? ? HANDL

用java开发一个安卓客户端在线交流APP,是怎么实现添加好友的?求大神帮我看看这段代码。

问题描述 用java开发一个安卓客户端在线交流APP,是怎么实现添加好友的?求大神帮我看看这段代码. private void submit() { dialog = ProgressDialog.show(this, "提示", "处理中.."); new AsyncTask() { @Override protected String doInBackground(String... params) { String urlString = AppConstan

哪位大神帮我注释这段代码,最好详细一点(AT89s**与霍尔元件测速报警应用)。有附电路的原理图

问题描述 哪位大神帮我注释这段代码,最好详细一点(AT89s**与霍尔元件测速报警应用).有附电路的原理图 5C #includeunsigned char code table[12]={0xc00xf90xa40xb00x990x920x820xf80x800x900xff0xBF};unsigned char code table2[12]={0x400x790x240x300x190x120x020x780x000x100xff}; sbit CS3020=P1^0;sbit SET=P

xmlentities-在xml文档中插入图片总是失败,请大家帮我看看这段代码错在哪里了?

问题描述 在xml文档中插入图片总是失败,请大家帮我看看这段代码错在哪里了? <?xml version="1.0" encoding="GB2312"?> <!DOCTYPE photos[ <!ELEMENT photos (photo*)> <!ELEMENT photo EMPTY> <!ATTLIST photo Sources ENTITIES #REQUIRED> <!ENTITY ic1 S

图片-刚学c语言,各位大大帮我看看这段代码哪里有错,谢谢啦

问题描述 刚学c语言,各位大大帮我看看这段代码哪里有错,谢谢啦 题目是判断一个数是否能被3整除 解决方案 第一,主函数里调用函数方法即可,不可以定义函数:第二,你的函数名不规范,一般很少用一个单字母表示函数,当然f除外(习惯不好),可以命名为Divide_3.第三,返回值最好用宏定义设计为True或者False,逻辑更清晰. 解决方案二: main函数中调用x()函数#include int main(){x(s);}int x(int s){....} 解决方案三: 这个太基础了,你应该多看点

for-谁帮我改改这段代码问题出在哪里?

问题描述 谁帮我改改这段代码问题出在哪里? int score; //每门课成绩 int sum = 0; //成绩之和 double avg = 0.0; //平均分 Console.WriteLine(""请输入学生姓名:""); string name = Console.ReadLine(); for (int i = 0; i < 5; i++) { Console.Write(""请输入五门课中第""+(i+

sqlhelper-求大神帮我把这段代码注释下,看不懂啊

问题描述 求大神帮我把这段代码注释下,看不懂啊 SqlParameter[] arParms = new SqlParameter[2]; arParms[0] = new SqlParameter(""@userid"" enamestr); arParms[0].Direction = ParameterDirection.Input; arParms[2] = new SqlParameter(""@right"" Sq

java 排列组合-求大神帮我看看这段代码,打印完“12345”结束for循环后为什么还能继续运行?新手没金币,抱歉!

问题描述 求大神帮我看看这段代码,打印完"12345"结束for循环后为什么还能继续运行?新手没金币,抱歉! public class Test { public static void main(String[] args) { prints(0 0 0 0 0);}public static void prints(int k1int k2int k3int k4int k5){ if(k5!=0){ System.out.println(k1*10000+k2*1000+k3*1

string-各位大大帮我看看这段代码哪里有误急啊!!!!!

问题描述 各位大大帮我看看这段代码哪里有误急啊!!!!! OutputStream fos=null; InputStream is = getResources().openRawResource(Shuzu.tupians[poistion]); Log.e("当前的数组里面的是什么呢", "Shuzu.tupians[poistion]"+Shuzu.tupians[poistion]); Log.e("65656565656565656565656