Javascript 当单击并单击元素时,原型获取var输入的值
我在通过单击获取DOM元素的值时遇到问题。元素具有“class”属性集。我的代码看起来像这样Javascript 当单击并单击元素时,原型获取var输入的值,javascript,prototypejs,prototype,Javascript,Prototypejs,Prototype,我在通过单击获取DOM元素的值时遇到问题。元素具有“class”属性集。我的代码看起来像这样 document.observe('dom:loaded', function() { $$('.sepetle').invoke('observe', 'click', function(element){ var giftDetailID = element.down('input.gldID').getValue(); }); }); 在这里,我试图通过单击a.s
document.observe('dom:loaded', function() {
$$('.sepetle').invoke('observe', 'click', function(element){
var giftDetailID = element.down('input.gldID').getValue();
});
});
在这里,我试图通过单击a.septle来获取具有class.gldID的输入值。我的输入在“a”元素中
<tr id="<?=$row->GLD_ID?>">
<td><?=$row->ProdName?></td>
<td><?=$row->ProdPrice?></td>
<td>
<a class="sepetle" onclick="SepeteEkleDayi('<?=$row->ProdID?>');" href="javascript:;">Sepete At</a>
<input class="gldID" type="hidden" value="<?=$row->GLD_ID?>" />
</td>
</tr>
down方法沿着DOM子链向下-在本例中,它们是兄弟,因此不会从下一级向下。根据您计划在这些表格单元格中放置的其他内容,可以采用几种方法来实现这一点
如果只有和,那么这将起作用
document.observe('dom:loaded', function() {
$$('.sepetle').invoke('observe', 'click', function(element){
var giftDetailID = element.siblings()[0].getValue();
});
});
否则我会这样做,这是更灵活的
document.observe('dom:loaded', function() {
$$('.sepetle').invoke('observe', 'click', function(element){
var giftDetailID = element.up('td').down('input.gldID').getValue();
});
});
这里还有下一个可能有用的方法。如果您使用的是1.7,也可以使用on函数。使用on的意义在于,您只为整个页面创建一个侦听器,而不是为每个元素创建一个侦听器
document.on('click', '.sepetle', function(evt, elm){
evt.stop();
var giftDetailId = $F(elm.next('input'));
});
stopevt将阻止单击的发生,因此不需要使用javascript:;HTML中的URL。更好的形式是提供一个实际的URL来复制JS输出,而不是这些不可爬行的假URL。当然,除非你用点击做了破坏性的事情,比如删除
你也不需要这个文档。观察一下“dom:loaded”包装器,这又是一个胜利