Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 添加动态onclick=";location.href=通过js发送到按钮_Javascript_Jquery_Html_Onclick - Fatal编程技术网

Javascript 添加动态onclick=";location.href=通过js发送到按钮

Javascript 添加动态onclick=";location.href=通过js发送到按钮,javascript,jquery,html,onclick,Javascript,Jquery,Html,Onclick,我有一个使用jquery构建的工作模式弹出窗口的工作站点。在这个网站上有一个带有“删除”列的表格。每行都有一个href打开模式弹出窗口,在该弹出窗口中有一个a href链接“DELETE”。此href链接由js代码动态填充,具体取决于在站点上单击的删除列链接: <td><span id="hoverdeleteTI" data-href="deleteTI.php?id=2" data-toggle="modal" data-target="#confirm-delete"&g

我有一个使用jquery构建的工作模式弹出窗口的工作站点。在这个网站上有一个带有“删除”列的表格。每行都有一个href打开模式弹出窗口,在该弹出窗口中有一个a href链接“DELETE”。此href链接由js代码动态填充,具体取决于在站点上单击的删除列链接:

<td><span id="hoverdeleteTI" data-href="deleteTI.php?id=2" data-toggle="modal" data-target="#confirm-delete">OPEN POPUP</span></td>
打开弹出窗口
以下脚本将href部分添加到模式弹出窗口内的a href中

<script>
$('#confirm-delete').on('show.bs.modal', function(e) {
$(this).find('.btn-ok').attr('href', $(e.relatedTarget).data('href'));

$('.debug-url').html('delete URL: <strong>' + $(this).find('.btn-ok').attr('href') + '</strong>');
});
</script>

$(“#确认删除”)。on('show.bs.modal',函数(e){
$(this.find('.btn ok').attr('href',$(e.relatedTarget.data('href'));
$('.debug url').html('delete url:'+$(this.find('.btn ok').attr('href')+'');
});
模式弹出窗口:

<div class="modal fade" id="confirm-delete" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">

            <div class="head-deletepopup">
                <span class="close" data-dismiss="modal" aria-hidden="true">×</span>
                <div class="mpopup-titel">DELETE CONFIRM</div>
            </div>

            <div class="modal-body">
                <p>REALLY?</p>
                <p class="debug-url"></p>
            </div>

            <div class="modal-footer">
                <button type="button" class="ddeletebutt btn-default" data-dismiss="modal">CANCEL</button>
                <button type="button" class="ddeletebutt btn-ok">DELETE BUTTON</button>
                <a class="dddeletebutt btn-ok">DELETE</a>
            </div>
        </div>
    </div>
</div>

×
删除确认
真的吗

取消 删除按钮

这就是工作的部分。但我真正想要的是,它将href添加到“DELETE button”之前的按钮中。因此,我需要对该代码进行转码
DELETE按钮
进入
删除按钮

但目前我显然只得到了:
DELETE按钮

如何将添加的href=更改为onclick=“location.href=


谢谢!

如果代码的目标是锚元素而不是按钮,请使用更好的选择器查找元素。在这种情况下,请在类选择器前面加上标记选择器ie
按钮。btn\u ok

$(this).find('button.btn_ok')
另外,您不需要设置实际的HTMLOnClick属性,您可以使用jQuery事件方法或本机addEventListener

let href = $(e.relatedTarget).data('href');
$(this).find('button.btn_ok').click(()=>location.href=href});
//or with native methods
this.querySelector('button.btn_ok').addEventListener('click',()=>location.href=href});
根据您的示例,您的终端元素将不再具有btn_ok类,您可以使用jQuery的
removeClass()

换行

$(this).find('.btn-ok').attr('href', $(e.relatedTarget).data('href'));
为此:

$(this).find('.btn-ok').attr('onclick', 'location.href=\'' + $(e.relatedTarget).data('href') + '\'');

虽然这只是从表面上看OP的问题,但它完全错过了避免内联代码路线的机会。我的观点:
$(this).find('.btn-ok').attr('onclick', 'location.href=\'' + $(e.relatedTarget).data('href') + '\'');