3

我有一个行表。在其中一列中,一些行具有静态文本的跨度,一些行具有可供选择的值的选择。这一列中的所有元素都具有相同的名称属性。在我的表单提交中,我遍历行并希望获取所有列的值。我希望有一个 jQuery 选择器语句来从该元素中获取值(跨度或选择名称属性为“materialValue”)。我将如何使用 jQuery 来做到这一点?下面是 html 片段。

<table>
  <tr><td>
      <span id="materialValue1" name="materialValue>ONE</span>
  </td></tr>
  <tr><td>
      <span id="materialValue2" name="materialValue>TWO</span>
  </td></tr>
  <tr><td>
      <select id="materialValue3" name="materialValue>
        <option>ONE</option>
        <option>TWO</option>
        <option>THREE</option>
      </select>
  </td></tr>
  <tr><td>
      <select id="materialValue4" name="materialValue>
        <option>ONE</option>
        <option>TWO</option>
        <option>THREE</option>
      </select>
  </td></tr>
</table>

编辑:我习惯于指定元素类型,然后用属性名称/值指定方括号。我不确定如何指定没有元素类型名称的 jquery 选择器。例如$('span[name="materialValue"]', this)。指定是否合法$('[name="materialValue"]', this)?我觉得很奇怪。

4

2 回答 2

7

您只需要一个属性选择器:

$("[name='MaterialValue']")

此外,您name在 html 中的属性之后缺少右引号

在这里查看参考: http ://api.jquery.com/attribute-equals-selector/

于 2012-07-10T18:28:06.803 回答
4

像这样...

$("[name=materialValue]")    // Select element with name attribute with a specific value

使用括号选择属性。你也可以在其他情况下像这样使用它......

$("div[id]")      // Select element with an id attribute

$("[name*=test]") // Select all elements with *test* in the name attribute (partial)

ETC..

于 2012-07-10T18:28:04.557 回答