根据属性中的字符串选择值

时间:2016-03-11 20:02:06

标签: javascript jquery

我正在使用以下的html,我试图在普通的javascript或jquery中选择它的值。 name属性可能会有所不同,所以我不能将它用作我的选择器,尽管它总是代表相同的数据(grade_level)。我认为我最好的选择方式是通过字符串'students.grade_level,但我不知道如何访问它。

<input type="hidden" name="UF-001008-1$formatnumeric=#########.#####" value="1" data-validation="{"maxlength":"10","isinteger":"true","type":"number","key":"students.grade_level"}">

到目前为止,我还没能选择元素的值。我试过了:

var myvar = $( "input[data-validation~='students.grade_level']" ).val();
var myvar = $( "input:contains('students.grade_level')" ).val(); 

我还能怎么做呢?

TYIA

1 个答案:

答案 0 :(得分:3)

您提供属性的方式是错误的,

<input type="hidden" name="UF-001008-1$formatnumeric=#########.#####" value="1" data-validation="{'maxlength':'10','isinteger':'true','type':'number','key':'students.grade_level'}">

正确使用引号来覆盖您的属性,escape double quote或使用single quotes代替。

在纠正之后你可以使用*= attibute值包含选择器来实现你想要的,

var myvar = $( "input[data-validation*='students.grade_level']" ).val();

:contains()选择器无法解决,因为它会搜索匹配的文本内容。 ~=属性包含单词选择器也无法解决,因为我们的data-validation属性中没有任何单词。在某种意义上的词,由空格分隔的一组文本。

DEMO