2012-08-30 34 views
1

所以我希望能够从表格单元中获取数字并将其乘以聚焦输入,但是选择器正在抓取所有具有前面名称前面的表格单元格。这里是代码:为什么我的jquery选择所有文本值

jQuery的

$(document).ready(function(){ 
    $(".percent").focusout(function(){ 
     var val2 = $(this).val(); 
     if (val2==="") { 
      val2=0; 
     } 
     var crew2 = $(this).attr("name"), 
      front = $(".front, td[name='front"+crew2+"']").text(); 
     console.log(crew2); 
     console.log(front); 
    }); 
}); 

HTML:

<tr> 
    <td class='front' name='frontI210'>$176.00</td> 
    <td><input type='text' class='percent' name='I210' style='' size='4' /></td> 
    <td>=</td> 
    <td class='total' id='I210'></td> 
</tr> 
<tr> 
    <td class='front' name='frontI250'>$225.00</td> 
    <td><input type='text' class='percent' name='I250' style='' size='4' /></td> 
    <td>=</td> 
    <td class='total' id='I250'></td> 
</tr> 

和执行console.log(前)将返回fronti210和fronti250的所有文字这样:

$176.00$225.00 

我想只接收来自表格单元格的信息,它与我刚刚完成的输入字段名称匹配, 我怎么做?

回答

8

$(".front, td[name='front"+crew2+"']")搜索用于与front类以及与namefrontXXX所有td元素的所有元素。逗号是multiple selector[docs]

无论是td元素具有该名称只搜索:

var front = $("td[name='front"+crew2+"']").text(); 

,或者使用DOM遍历:

var front = $(this).closest('tr').children('.front').text(); 
+0

不错,不知道.closest()。 –

4
$(".front, td[name='front"+crew2+"']").text(); 
//this___^ is the culprit. 

逗号基本上是说我想用类的所有元素front和具有指定名称的所有td元素。

你想要的可能是:

$("td[name='front"+crew2+"'].front").text(); 

以为我没有测试过这一点,语法可能会关闭略有下降。

相关问题