-1

我想更改以下 onclick 事件,从:

view_tree_element('subscription','45592063',1);
focusit('1_45592063',true)

onclick="show_dialog('feed_info_dialog',{subscription_id: 45592063}

即从原始onclick事件中获取数字45592063,

将其存储在变量中并将锚点更改为 show_dialog 事件

我该怎么做?

4

1 回答 1

0

看看这个。如果有,它会替换 onclick 处理程序。onc您可以在var中添加“订阅”是否存在的测试

我将 ID 存储在链接本身的属性中

var re = /'subscription','(\d+)'/; // a number in quotes after 'subscription',
window.onload=function() { // or addEventListener
  var links = document.querySelectorAll("a[onclick]");
  for (var i=0; i<links.length;i++) {
    var onc = links[i].onclick.toString();
    if (onc) {
      var id = onc.match(re);
      if (id) { // something found
        links[i].setAttribute("sub-id",id[1]);
        links[i].onclick = function() {
          show_dialog('feed_info_dialog',{subscription_id: this.getAttribute("sub-id")});
          return false; // cancel link
        }  
      }
    }  
  }
}
// this will of course be YOUR show_dialog
function show_dialog(a,b) { 
  console.log(a,b);
}
<a href="#" onclick="view_tree_element('subscription','45592063',1);
focusit('1_45592063',true)">Click</a><br/>
<a href="#">No onClick</a><br/>
<a href="#" onclick="alert('subscription','',1)">Click - no id</a><br/>
<a href="#" onclick="view_tree_element('subscription','55592063',1);
focusit('1_55592063',true)">Click</a>

于 2017-12-15T09:21:53.733 回答