使用动态ID而不是其他目标的特定元素
我有一组动态构建并添加到页面的输入框。我可以控制放置在元素上的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
。我如何瞄准它而不抓住其他人?
好了,你可以用这个
var elem = $('input[name$=clientTest]');
以上将只针对其name
属性与clientTest
如何将一个变量传入名称?我尝试传递一个变量,但它只是取得变量的名称而不是我设置变量的名称。 – 2014-09-24 15:27:46
'var name =“clientTest”;' 'var elem = $('input [name $ ='+ name +']');' – 2014-09-24 15:28:42
$.each($("input:hidden"), function (index, value) {
if (value.id.match(/.*:[a-zA-Z]+$/)) {
alert(value.id);
}
});
结束元素这将针对任何<input type="hidden">
元素与仅由字母的ID (aZ)最后一个“:”
查看这里:jsFiddle
不知道我是否正确理解你的问题,但你也许可以做类似'jQuery('[id $ =''+ id +'“''')'只匹配id属性的结尾部分。 – 2014-09-24 14:58:23