2017-10-18 35 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()),我甚至沒有考慮數據屬性。因此,解決一個問題的兩個解決方案謝謝! –