无法获取值:JQUERY

3

我正在创建包含两个和文本的动态行,Host-Address是从GET请求动态填充的。

<tr>
   <td class='hostId'>Host-Address</td>
   <td>
    <input id="btnProv" type='button' onClick="enablePro()" class='btn-success' value="Provision">
   </td></tr>

我需要使用 jQuery 获取该值。
function enablePro(){
 //var ipAddr = $(this).parent().siblings("td").first().text();
 var row = $(this).closest('tr');
 var ipAddr  = row.find('td.hostId').text();
 alert(ipAddr);
 }

但是我得到了一个空的警告框,请帮我指出我的错误。
2个回答

5
你需要将this传递给函数。
onClick="enablePro(this)" 

function enablePro(elem){

 var row = $(elem).closest('tr');

this指的是在绑定内联事件时,函数内部的窗口对象。

使用JavaScript绑定事件而不是内联事件,然后this指向触发事件的元素。

$('.btn-success').click(enablePro);

Check Fiddle


谢谢,兄弟。它像魔法一样奏效了,但是我无法使用 $('.btn-success').click(enablePro); 运行,然后回去声明 onClick 函数就可以了。 - naga4ce
应该这样工作。在 DOM 就绪处理程序内绑定事件 $(function() { // your code }); - Sushanth --

0
你需要将 this 或者 this.id 传递给函数:
this 指的是该控件的对象,而 this.id 则会返回该控件的id
onClick="enablePro(this.id)"

function enablePro("#"+sender){
 var row = $(sender).closest('tr');
 var ipAddr  = row.find('td.hostId').text();
 alert(ipAddr);
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接