在$(this)行中获取<select>值

时间:2018-02-03 19:17:59

标签: php jquery select row

我有一个由这样的元素组成的表 &LT; TR&GT;     &LT; TD→1&LT; / TD&GT;     &LT; TD&GT;&LT;选择&GT;     &LT;选项&gt;一种与LT; /选项&GT;     &LT;选项&GT; b将/选项&GT;     &LT; /选择&GT;     &LT; / TD&GT;     &LT; TD&GT; 3'; / TD&GT;     &lt; button id =&#34; button&#34;&gt;&lt; / button&gt; &LT; / TR&GT; 当使用jquery按下按钮时,如何获取当前行的所有值,包括所选选项? 我想得到:1&#39; a&#39;(例如,选择&#39; a&#39;选项)3

1 个答案:

答案 0 :(得分:1)

如果通过&#34;值&#34;你的意思是其他两个单元格中的1和3,你使用closest来查找行,然后使用findchildren来访问td在里面。这是你可能采取的一种方式:

&#13;
&#13;
$("#button").on("click", function() {
  // Get the row
  var row = $(this).closest("tr");
  // Get the cells and their contents:
  row.children("td").each(function() {
    var $this = $(this);
    // Ignore the one with the button
    if (!$this.find("button").length) {
      // Does this one have the select?
      var select = $this.find("select");
      if (select.length) {
        // Yes, use that
        console.log(select.val());
      } else {
        // No, grab text
        console.log($(this).text());
      }
    }
  });
});
&#13;
<table>
  <tbody>
    <tr>
      <td>1</td>
      <td><select>
      <option>a</option>
      <option>b</option>
      </select>
      </td>
      <td>3</td>
      <td>
        <button id="button">I'm a button</button>
      </td>
    </tr>
  </tbody>
</table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

但是refer to the API,您可以通过许多其他方式访问这些td

请注意,我将button包裹在td中。您的原始标记无效,您不能button作为tr的直接子项。

另请注意,如果您有多个tr,则无法对所有这些id="button"使用{可能更适合使用课程),但我猜测来自ID,这只是你为问题提出的占位符。 : - )