2017-10-18 33 views
0

我在克隆当前行然后清除某些值(其工作没有问题)的表中有一个按钮。然而,细胞中的一个具有与一些参数的onclick事件的链接替换克隆表行中链接的onclick参数

<td class="srcbtn"><a class="grid_button" onclick="functionName('#MyLiteral', 'STUDY=ABC&SURID=3&SID=ABC01&LANG=en-US&RID=4e60fd3d-1ab4-e711-80ec-0050568a179a');"><img src="imgsrc.png" alt="img" style="border-width:0px;"></a></td> 

我能抢按钮

if ($(this).hasClass("srcbtn")) { 
    var btn = $(this).find('.grid_button')[0]; 
    console.log(btn); 
} 

其中给出:

<a class="grid_button" onclick="functionName('#MyLiteral', 'STUDY=ABC&SURID=3&SID=ABC01&LANG=en-US&RID=4e60fd3d-1ab4-e711-80ec-0050568a179a');"><img src="imgsrc.png" alt="img" style="border-width:0px;"></a> 

什么然而,我需要做的是删除onclick中的某个参数,甚至只是更改参数名称,但其他参数需要保留。该函数本身在Literal控件中创建一个iframe,并使用参数构建URL,函数和参数名称是从某些数据库值动态创建的,因此我不能清除并重新创建它。

在这种情况下,& RID = 4e60fd3d-1ab4-e711-80ec-0050568a179a需要要么被剥离出来或者甚至只是更换& RID =到& XRID =或类似这样的代码进一步沿着没有看到传递一个RID参数。

我以为我可以使用.replace('& RID =','& XRID ='),但得到一个错误,替换不是一个函数。所以然后我尝试了.text认为我可以在文本上使用替换,但文本返回空白。

如果有人能告诉我如何修改onclick的文本,这会很有帮助。

感谢

+0

你在哪里运行这段代码:'.replace('&RID = ','&XRID =')'? – Jackowski

+0

该代码位于一个函数中,该函数用于克隆行。 .replace不再存在,虽然它不起作用 –

回答

3

这将是更好的为你使用来自jQuery和HTML5 data-属性,所谓的“live”事件。在这种情况下,您的HTML代码可能是这个样子:

<td class="srcbtn"><a class="grid_button" data-target="#MyLiteral" data-study="ABC" data-surid="3" data-sid="ABC01" data-lang="en-US" data-rid="4e60fd3d-1ab4-e711-80ec-0050568a179a"><img src="imgsrc.png" alt="img" style="border-width:0px;"></a></td> 

,然后到你的脚本,你可能会使用类似:

$('table').on('click', '.grid_button', function (ev) { 
    ev.preventDefault(); 
    var $e = $(this); 
    functionName($e.data('target'), $.param({ 
     STUDY: $e.data('study'), 
     SURID: $e.data('surid'), 
     SID: $e.data('sid'), 
     LANG: $e.data('lang'), 
     RID: $e.data('rid') 
    })) 
}); 
+0

这可能是一个更好的方法,我会给它一个旋转..但是,当我克隆行,将重复,我仍然需要删除数据删除属性? –

+0

设置像这样的属性就像一个魅力。我非常喜欢它的工作方式(使用onclick()),我甚至没有考虑数据属性。因此,解决一个问题的两个解决方案谢谢! –