Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当单击并单击元素时,原型获取var输入的值_Javascript_Prototypejs_Prototype - Fatal编程技术网

Javascript 当单击并单击元素时,原型获取var输入的值

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

我在通过单击获取DOM元素的值时遇到问题。元素具有“class”属性集。我的代码看起来像这样

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”包装器,这又是一个胜利