需要一些帮助!我试图获取下面的输入id“j_id0:j_id2:j_id4:j_id54:0:j_id59:0:j_id63”的值,并尝试了jquery和javascript,如:document.getElementById("j_id0:j_id2:j_id4:j_id54:0:j_id59:3:j_id63")
但仍然得到一个null结果。 ID也无法更改,任何帮助赞赏
<td class="sf42_cell_bottom_light"><span id="j_id0:j_id2:j_id4:j_id54:0:j_id59:0:j_id61"><input id="j_id0:j_id2:j_id4:j_id54:0:j_id59:0:j_id63" maxlength="200" name="j_id0:j_id2:j_id4:j_id54:0:j_id59:0:j_id63" size="20" type="text" value="717474417"></span></td>
答案 0 :(得分:1)
使用此:
$("[id='j_id0:j_id2:j_id4:j_id54:0:j_id59:0:j_id61']")
顺便说一下,由于您正在使用JSF,因此将ID设置为每个组件是一种很好的做法,以避免出现这种可怕的ID(如果添加/删除组件,谁可以更改)。
查看此主题中的更多信息:
答案 1 :(得分:0)
你对元素有任何控制吗?你能为它添加一个课程吗?
var val= document.getElementsByClassName("TheClassName");
或者你可以使用类sf42_cell_bottom_light获取TD(如果它是唯一的)然后通过以下方式获取其INPUT元素:
var theTd= document.getElementsByClassName("sf42_cell_bottom_light");
var val = theTD.getElementsByTagName("INPUT");
我需要查看更多HTML以便为您提供更好的答案。
答案 2 :(得分:0)
您可能需要在ID中转义colon
.So
试试这个
function RemoveInvalidCharacter(myid) {
return '#' + myid.replace(/(:|\.|\[|\])/g, "\\$1");
}
并像这样打电话
$(RemoveInvalidCharacter('j_id0:j_id2:j_id4:j_id54:0:j_id59:0:j_id61'));
查看How do I select an element by an ID that has characters used in CSS notation
答案 3 :(得分:0)
我已经测试了这段代码:
<td class="sf42_cell_bottom_light">
<span id="j_id0:j_id2:j_id4:j_id54:0:j_id59:0:j_id61">
<input id="j_id0:j_id2:j_id4:j_id54:0:j_id59:0:j_id63" maxlength="200" name="j_id0:j_id2:j_id4:j_id54:0:j_id59:0:j_id63" size="20" type="text" value="717474417">
</span>
</td>
<script type="text/javascript">
document.write(document.getElementById("j_id0:j_id2:j_id4:j_id54:0:j_id59:0:j_id63").value);
</script>
在FF,IE,Chrome(最新版本)......似乎工作正常......你确定这是关于这个ID吗?
替换:
document.getElementById("j_id0:j_id2:j_id4:j_id54:0:j_id59:3:j_id63")
与
document.getElementById("j_id0:j_id2:j_id4:j_id54:0:j_id59:0:j_id63")
id不同。