javascript
  • jquery
  • 2014-01-14 60 views 0 likes 
    0

    我與jQuery的VAL()來了

    function editRow(a) { 
        $("td").each(function() { 
        alert($(this).val()) 
        }); 
    } 
    

    它遍歷

    $("tbody").append(
        "<tr id = '" + trId + "'>" + 
        "<td name = 'nameRow' id = 'name" + idCt + "' value = 'test' > <strong>" + name + "</strong> </td>" + 
        "<td name = 'maxRow' id = 'max" + idCt + "' value = '" + max + "'>" + max + "</td>" + 
        "<td name = 'setRow' id = 'sets" + idCt + "' value = '" + sets + "'>" + sets + "</td>" + 
        "<td name = 'repRow' id = 'reps" + idCt + "' value = '" + reps + "'>" + reps + "</td>" + 
        "<td name = 'restRow' id = 'rest" + idCt + "' value = '" + rest + "'>" + rest + "</td>" + 
        "<td id = 'link" + idCt + "'><a href='#' onclick='return deleteRow(" + trId + ");' >Remove</a>" + 
        " | <a href='#' onclick='return editRow(" + idCt + ");'>Edit</a></td>" + 
        "</tr>" 
    ); 
    

    alter($(this).val())迭代快到了的時候正確的金額。每()後爲空白,但它總是隻是空白(而不是未定義))。

    我知道這不是可讀的,但沒有人看到錯誤?

    謝謝!

    +0

    AHHHHH我知道了,謝謝都 –

    回答

    0

    .val()是隻爲輸入要素定義的方法。普通的HTML元素沒有價值。您應該使用.html().text()得到使用data-前綴

    <td data-value="whatever">...</td> 
    

    然後你可以使用jQuery的.data()這些元素

    function editRow(a) { 
        $("td").each(function() { 
         alert($(this).text()) 
        }); 
    } 
    

    你應該定義非標準屬性(像<td>值)的內容方法來訪問這些屬性

    var tdDataValue = $(this).data('value'); 
    
    +0

    很好的解釋。謝謝! –

    0

    問題是「td」 - 元素沒有值。他們有內在的HMTL。如果你想獲得TD的內容,則需要使用$(本)。html的()

    function editRow(a) { 
    $("td").each(function() { 
        alert($(this).html()) 
    }); 
    

    }

    0

    val方法通常保留爲input標籤。對於td您可以執行:

    $(this).text();

    $(this).attr('value');

    0

    只是嘗試這樣的事情

    function editRow(a) { 
        $("td").each(function() { 
         alert(this.innerText);// reading inner text 
         alert($(this).attr('value'));// reading value attribute 
        }); 
    } 
    
    相關問題