2014-09-24 45 views
0

我有一组动态构建并添加到页面的输入框。我可以控制放置在元素上的ID,但它被一堆垃圾包裹着。例如,我给它一个ID为clientTest它将呈现一个ID为j_id0:j_id2:theForm:clientTest_mod。总共有7个输入框包含此Id,但包含不同的结尾。该ID的第一部分,也是动态的,所以我可以在没有硬编码任何东西。使用动态ID而不是其他目标的特定元素

一个例子,

<input type="hidden" name="j_id0:j_id2:theForm:clientTest_lkid" id="j_id0:j_id2:theForm:clientTest_lkid" value="000000000000000"> 
<input type="hidden" name="j_id0:j_id2:theForm:clientTest_lkold" id="j_id0:j_id2:theForm:clientTest_lkold" value="null"> 
<input type="hidden" name="j_id0:j_id2:theForm:clientTest_lktp" id="j_id0:j_id2:theForm:clientTest_lktp" value="001"> 
<input type="hidden" name="j_id0:j_id2:theForm:clientTest_lspf" id="j_id0:j_id2:theForm:clientTest_lspf" value="0"> 
<input type="hidden" name="j_id0:j_id2:theForm:clientTest_lspfsub" id="j_id0:j_id2:theForm:clientTest_lspfsub" value="0"> 
<input type="hidden" name="j_id0:j_id2:theForm:clientTest" id="j_id0:j_id2:theForm:clientTest" value="0"> 

我有一些代码,让我针对特定的箱子,

var lkid = elementId + "_lkid"; 

问题是我不知道如何定位没有任何东西的输入框。那只是clientTest。我如何瞄准它而不抓住其他人?

+0

不知道我是否正确理解你的问题,但你也许可以做类似'jQuery('[id $ =''+ id +'“''')'只匹配id属性的结尾部分。 – 2014-09-24 14:58:23

回答

3

好了,你可以用这个

var elem = $('input[name$=clientTest]'); 

以上将只针对其name属性与clientTest

+0

如何将一个变量传入名称?我尝试传递一个变量,但它只是取得变量的名称而不是我设置变量的名称。 – 2014-09-24 15:27:46

+1

'var name =“clientTest”;' 'var elem = $('input [name $ ='+ name +']');' – 2014-09-24 15:28:42

0
$.each($("input:hidden"), function (index, value) { 
    if (value.id.match(/.*:[a-zA-Z]+$/)) { 
     alert(value.id); 
    } 
}); 

结束元素这将针对任何<input type="hidden">元素与仅由字母的ID (aZ)最后一个“:”

查看这里:jsFiddle

相关问题