首页 新闻 会员 周边

火狐不兼容问题

0
悬赏园豆:30 [已解决问题] 解决于 2013-08-29 16:22

我需要获取table对象ID为GroupInfoTable ,tr对象中样式包含addoffering_span_red的所有对象,然后找到对象的值及名称,

JS如下:

  $("#GroupInfoTable tr .addoffering_span_red").each(function (i, item) {

  var tr = $(item).parent().parent().siblings().children().eq(0).val(); //获取必填项的值

   var str = $(item).parent().parent().siblings().children().eq(0); //获取必填项对象

}

HTML如下:

<table id="GroupInfoTable" class="formTableInput">
 <tbody>

<tr>
     <td class="labelTdWidth tdLabelBg">
         <label><span class="addoffering_span_red">*</span>实验任务名:</label>
      </td>
      <td class="textTdWidth">
        <input type="text" value="0828test3" style="" name="ClassName" id="ClassName">
       </td>
</tr>   
<tr>
     <td class="labelTdWidth tdLabelBg">
         <label><span class="addoffering_span_red">*</span>实验管理员:</label>
      </td>
       <td class="textTdWidth">
           <input type="text" value="test105" class="InstructorWidthAll" name="Instructor" id="Instructor" style="display: none;">

         <div contenteditable="true" style="width:221px" class="editDiv" id="_Instructor" autocomplete="off">

            <span contenteditable="false" class="_Instructor_user">

               <span contenteditable="false">test105</span>

           </span>

       </div>

  </td>

 </tr>

  </tbody>

</table>

 

PS:蓝色的就是我想取得的对象,红色的就是对象的值,

现在取对象的值这句在火狐下有问题:

 var tr = $(item).parent().parent().siblings().children().eq(0).val();

eg:

实验管理员的tr下面不仅有input标签,还有一个div元素,不知道这样方式能否取到值

--》eq(0).val();

 

在IE,谷歌,傲游都没问题,只有火狐有问题,请各位大神帮忙看看

问题补充:

 var tr = $(item).parent().parent().siblings().children().eq(0).val();

----之前tr下面只有一个input的,所以可以这样取值,现在因为需求变动,实验管理员这行有所改动,tr下面的input后面还加了div,Jquery我不是很熟,不知道怎么改变才能取得实验管理员的对象值,也就是input里面的值

慢阳阳的主页 慢阳阳 | 初学一级 | 园豆:41
提问于:2013-08-28 18:53
< >
分享
最佳答案
0

这个。。为啥不这么干呢:

$(item).parents('tr').find('input')

这样不是一下子就找到input了吗。

收获园豆:25
undefined | 小虾三级 |园豆:898 | 2013-08-29 09:55

哎,好吧,怪我没描述情况,我只是贴了部分代码出来了,这个页面不确定显示多少行,是其他地方配置的,是否必填 也是不确定的,都需要在域里面配置才知道,所以tr和input不能作为条件,只好搜索带星号的某行数据,然后通过星号找到对应的对象及对象值,理解我意思吗?

慢阳阳 | 园豆:41 (初学一级) | 2013-08-29 10:48

@Sunny-午夜阳光: 没错啊, 星号你不是通过.addoffering_span_red查出来了吗。

然后不是用each在跑么。

 

那么每一个each都可以用向上找最近的tr然后再找input的方法回来啊。

undefined | 园豆:898 (小虾三级) | 2013-08-29 11:42

@undefined: 

大哥啊,貌似这句话有问题啊?结果是undefined~~o(╯□╰)o

$(item).parents('tr').find('input')

慢阳阳 | 园豆:41 (初学一级) | 2013-08-29 15:34

@Sunny-午夜阳光: 我这跑的很high吗。 

我贴一段给你看看:

$("#GroupInfoTable tr .addoffering_span_red").map(function(){ return {description:$(this).parents('tr').find('label').text(),value:$(this).parents('tr').find('input').val()}; })

undefined | 园豆:898 (小虾三级) | 2013-08-29 16:02

@undefined: 呵呵,写得很详细,我其实也是这样写的,不过我以为你把parents写错了,就把s去掉了。。。o(╯□╰)o 现在解决啦,问题考虑过多也不是好事啊,O(∩_∩)O谢谢你咯

慢阳阳 | 园豆:41 (初学一级) | 2013-08-29 16:22

@Sunny-懒阳阳: 

<td class="textTdWidth">   

    <span name="wrapspan" style="margin-right: 2px; white-space: nowrap;">

         <input type="text"  value="" name="Instructor" id="Instructor" >

</span>

   </td>

 

现在结构变成这样了,之前的方式不行了哦,还是取不到值,这个咋解决呢?

$(this).parents('tr').find('input').val();之前解决方式

慢阳阳 | 园豆:41 (初学一级) | 2013-09-06 17:06

@Sunny-懒阳阳: 是不是更简单了? 直接$(this).find('input')就OK了?

undefined | 园豆:898 (小虾三级) | 2013-09-06 17:10
其他回答(2)
0

说实话没搞懂你的意思 ~

不过要取出红色的值很简单:

  $("#GroupInfoTable tr .addoffering_span_red").each(function(i,item){
    var tr = $(this).parent().parent().parent().find("input:eq(0)").val(); //获取必填项的值
  });

其实看你的这个结构,直接搜索input不就得了???

$("#GroupInfoTable input").each(function(){});

还有,你在问题中贴出的【Js如下】,有问题,至少都缺少末尾的括号;然后你的html代码中,input标签没有结束标记~

收获园豆:5
幻天芒 | 园豆:37175 (高人七级) | 2013-08-28 21:15

哎,好吧,怪我没描述情况,我只是贴了部分代码出来了,这个页面不确定显示多少行,是其他地方配置的,是否必填 也是不确定的,都需要在域里面配置才知道,所以tr和input不能作为条件,只好搜索带星号的某行数据,然后通过星号找到对应的对象及对象值,理解我意思吗?

 

 

我贴的代码只是贴了关键部分,所以缺少括号和没结束标记之类的问题,在我这里是不存在的,是我没拷贝全

支持(0) 反对(0) 慢阳阳 | 园豆:41 (初学一级) | 2013-08-29 10:49

因为不确定会显示几行也不确定哪些数据是必填的,所以才以星号为判断条件,这样描述理解我意思吗?

见谅哈,表达能力不好

支持(0) 反对(0) 慢阳阳 | 园豆:41 (初学一级) | 2013-08-29 10:51

@Sunny-午夜阳光: 那你的代码基本是没什么问题的。如果FF不兼容,检查你的input标签,注意(标记需要封闭</input>),还不行,就用firebug调试下,很容易发现问题~

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2013-08-29 12:14

@幻天芒: 既然你可以通过*号判断必填,为啥不直接在input上加一个class=“required”呢?这样更简单的实现不是更好?

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2013-08-29 12:15

@幻天芒:

星号也是我加的啊。获取后台数据,里面有个字段判断某个值 是否为必填的依据,如果是必填则加星号。。。

火狐里面input不能直接<input type="text" />吗?

难道一定要写成<input type="text"></input>吗?

支持(0) 反对(0) 慢阳阳 | 园豆:41 (初学一级) | 2013-08-29 15:37

@Sunny-午夜阳光: 你这两个是一样的,关键是你贴的代码中不是这样的~

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2013-08-29 16:49
0

用firebug调试一下吧

jone_e | 园豆:1410 (小虾三级) | 2013-08-29 12:58

调试没用,因为不会异常,只是“实验管理员”的值填写了,取的也是""

 但实验任务名称的值可以取到的,因为两者的结构不一样,实验管理员的input下面还有div,我那个方式取不了

支持(0) 反对(0) 慢阳阳 | 园豆:41 (初学一级) | 2013-08-29 15:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册