查找特定的td并使用jquery将值分配给文本输入

时间:2013-08-29 20:56:22

标签: javascript jquery html

所以我试图遍历一个表并在td中找到特定的文本并将其分配给变量。这就是我到目前为止所做的:

 var table = $(this).closest('table');

    $("td",table).each(function(){
        if($(this)+':contains("AD Login")') console.log($(this).next().text());
    });

但是,此代码会将所有单元格打印到控制台,而不是找到找到的单元格的兄弟

3 个答案:

答案 0 :(得分:3)

.is()功能与:contains选择器一起使用( jQuery版本添加:1.1.4 )。

$("td",table).each(function(){
    if($(this).is(":contains('AD Login')")) console.log($(this).next().text());
});
  • 请注意,.contains()不适用于此,因为它只能检查DOM元素是否是另一个DOM元素的后代。(来自API)。

关于你在评论中写的内容 - 它总是返回true,因为你只是将$(this)字符串值连接到另一个字符串(“:contains etc.”) 。转换为布尔类型时,字符串immediates始终为true。

答案 1 :(得分:1)

jQuery有一个包含选择器http://api.jquery.com/contains-selector

示例:

var table = $(this).closest('table');

table.find('td:contains("AD Login")').each(function(){
    console.log($(this).next().text());
});

答案 2 :(得分:1)

假设jQuery的“旧”版本(从评论到另一个答案):

$("td",table).each(function(i,el){
    if ((el.textContent || el.innerText) == 'AD Login') {
        console.log($(this).next().text());
    }
});

以上将测试td的文本是否完全等于字符串('AD Login'),以检查该文本是否仅存在于td的文本中:< / p>

$("td",table).each(function(i,el){
    if ((el.textContent || el.innerText).indexOf('AD Login') > -1) {
        console.log($(this).next().text());
    }
});