2011-12-01 60 views
0

我有这个jQuery的行:将属性值动态插入选择器。

jQuery("input[name=secondname10]").removeAttr("disabled").val(""); 

我想知道我怎么可以让name动态的,而不是在代码进入它,因为我与name=secondname10一样。

+2

你问如何连接字符串? – SLaks

+0

cargo-cult * magic *编程再次发生。 –

回答

1

创建一个具有名称参数的函数。

function enableInput(name) { 
    jQuery("input[name="+ name +"]").removeAttr("disabled").val(""); 
} 

那么,如果你想这样做的每个输入类型,你可以做到这一点

enableInput("secondname10"); 

,如果你想这样做的每个输入元素上,你可以做到这一点

jQuery("input").removeAttr("disabled").val(""); 

你可以做的文字

jQuery("input[type='text']").removeAttr("disabled").val(""); 

和所以...

正如你所看到的,你必须将正确的过滤器应用到你的选择器。

希望这有助于

+2

hideInput是启用和清除输入的函数的特殊名称o_O –

+0

;)right ...也许“enableInput”更好 – dknaack

+0

或者你可以使它更像是一个DOM函数,并将其称为'enableInputByName',然后添加代码以使其在IE中表现出不可预知的行为。 :p – RightSaidFred

4
$('input[name=' + myNameVariable + ']') 

从您的评论,它不是很清楚你想要什么。

  • 如果要将此应用到所有投入,你可以只写$('input')
  • 如果您想将其应用于所有输入为name,您可以编写$('input[name]');
  • 如果您想将其应用于名称以secondname开头的所有输入,您可以编写$('input[name^=secondname]')

机会是你想要目标的输入有一些更方便的共同点,你可以访问它们。也许你正在寻找某个容器中的所有输入?或者是某个班级的所有输入?

我建议您阅读jQuery selectors以了解不同方式的概念,通过这些方法您可以识别一组用于操作的对象。

+0

谢谢。有没有办法动态获取输入的名称?因为我有其他名字secondname10,secondaname14,secondname14,email15,adresse15等,如果我创建一个新字段,我必须在代码中输入输入的名称。我希望它能够得到这个名字。我尝试过“this.name”,但它不起作用 – user1073001

0

你的意思是像tihs?

function removeAttr(nameVariable) { 
    $("input[name=" + nameVariable + "]").removeAttr("disabled").val(""); 
} 
+0

谢谢。有没有办法动态获取输入的名称?因为我有其他名字secondname10,secondaname14,secondname14,email15,adresse15等,如果我创建一个新字段,我必须在代码中输入输入的名称。我希望它能够得到这个名字。我试过“this.name”,但它不起作用 – user1073001