JQuery返回Null .next()

时间:2015-12-16 23:04:07

标签: javascript jquery html

我试图找到一种方法来提醒p标签的内容而没有类,名称或ID。它是一个名为' question'所以我想我可以接下来。父标签下有2个p标签,我要找的是第二个标签。当我运行它时,它返回null。我无法弄清楚为什么,因为我是JQuery的新手,感谢您的帮助。



alert($('#question').find('p').first().next().html());

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<td id="question">
  <p>First</p>
  <p>This is the one I want</p>
</td>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

你的javascript很好。问题出在你的HTML上。你可能忘了将它包装在一个表和一个tr:

alert($('#question').find('p').first().next().html());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td id="question">
      <p>First</p>
      <p>This is the one I want</p>
    </td>
  </tr>
</table>

问题中的代码不起作用,因为<td>没有<table><tr>时,它会被呈现为没有<td>

  <p>First</p>
  <p>This is the one I want</p>

see here

答案 1 :(得分:1)

问题是标记无效。如果没有tdtable元素,您就无法拥有tr个元素。那么,会发生什么,浏览器通过删除孤立td标记来修复损坏的标记。

如果您使HTML有效,它将起作用:

&#13;
&#13;
alert($('#question').find('p').first().next().html());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table>
    <tr>
        <td id="question">
            <p>First</p>
            <p>This is the one I want</p>
        </td>
    </tr>
</table>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

检查检查器中的代码时,您可以看到,由于System.Drawingtable标记不存在,因此您的tr标记也不存在,td返回null。只需添加它们。

&#13;
&#13;
$('#question')
&#13;
alert($('#question').find('p').first().next().text());
&#13;
&#13;
&#13;