2012-07-10 128 views
3

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

<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)是否合法?看起来很奇怪。

+0

根据'name = materialValue'创建选择器 – 2012-07-10 18:27:03

+0

[如Andrew所说](http://api.jquery.com/attribute-equals-selector/)。 – 2012-07-10 18:28:19

+0

使用相同的'name'属性是无效的标记。要么使用'name = whatever []' – diEcho 2012-07-10 18:29:41

回答

7

所有你需要的是一个属性选择:

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

而且,你失踪后收盘报价你的属性name在HTML

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

+2

要回答这个问题编辑:它看起来很奇怪,但它非常好。事实上,它就像你已经在你的日常代码中没有使用类型或'*'选择器的情况下已经使用'#id'或'.class'。 – BoltClock 2012-07-10 18:33:10

+0

感谢您的澄清,我只是不确定它将如何使用属性选择器。每天学些新东西... – Austin 2012-07-10 18:34:47

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) 

等。

+0

我确定这只是一个错字 – Austin 2012-07-10 18:30:35

相关问题