0

如果我有一个简单的 html 表:

<table>
  <tr>
    <th>header</th>
  </tr>
  <tr>
    <td class="count test">423</td>
  </tr>
</table>

如何从 td 中提取整数以便我可以对其采取行动?以下代码返回未定义:

function changeCount(){
    var count = $("td.count.test").val();
    alert(count);   
}
changeCount();

完整的html:

<html>
 <head>
     <title>Creation of array object in javascript</title>
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
     <script language="javascript" >


    function changeCount(){
        var count = $("td.count.test").text();
        console.log(count); 
    }
    changeCount();
    </script>

    <style>
    td{width:200px;text-align:center;}
    </style>
</head>
<body>
<table>
    <tr>
        <th>header</th>
    </tr>
    <tr>
        <td class="count test">423</td>
    </tr>
</table>
</body>
</html>
4

2 回答 2

2

不是.val()为了 a <td>,而是.text()

function changeCount(){
    var count = $("td.count.test").text();
    alert(count);   
}

请注意,如果有多个这样<td>的元素,那将返回 DOM 中第一个元素的内容。

.val()方法用于获取 、 和 元素的“值<input><select>属性<textarea>。无论哪种情况,DOM 访问都会给你一个字符串。如果您需要使用该值进行计算,则应通过parseInt()或其他几种技巧之一将其强制为数字。

于 2013-05-27T01:12:29.673 回答
0

问题是您试图通过 JavaScript 访问在执行函数时在 DOM 树中不可用的内容。您需要确保changeCount() 在加载整个 DOM 树之后或至少在您的函数所需的元素是文档 DOM 树的一部分之后触发。

<html>
 <head>
     <title>Creation of array object in javascript</title>
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
     <script language="javascript" >


    function changeCount(){
        var count = $("td.count.test").text();
        console.log(count); 
    }
    $(document).ready(function(){
        changeCount();
    });        
    </script>

    <style>
    td{width:200px;text-align:center;}
    </style>
</head>
<body>
<table>
    <tr>
        <th>header</th>
    </tr>
    <tr>
        <td class="count test">four twenty three</td>
    </tr>
</table>
</body>
</html>
于 2013-05-27T01:31:12.847 回答