为什么我的jquery选择所有文本值

时间:2012-08-30 19:13:54

标签: javascript 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(front)返回fronti210和fronti250的所有文本:

$176.00$225.00

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

2 个答案:

答案 0 :(得分:8)

$(".front, td[name='front"+crew2+"']")搜索所有包含front个元素的元素以及包含td name的所有frontXXX元素。逗号是multiple selector [docs]

要么只搜索具有该名称的td元素:

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

或使用DOM遍历:

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

答案 1 :(得分:4)

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

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

你想要的可能是:

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

以为我没有测试过,语法可能略有不同。