当我在href标签中调用它时,如何将参数传递给函数

时间:2017-01-16 08:40:27

标签: javascript

我正在创建一个评估Web应用程序,请帮我解决这个逻辑/语法问题:我想创建一个以单元格内容为超链接的表,这样当用户点击链接时它会打开一个新窗口接受数据,它也应该显示下一页点击的单元格的内容。

这是我的Javascript代码:

row = table.insertRow(-1);

var cell = row.insertCell(-1);

cell.innerHTML = '<a href="#" onclick = func(name);>'+name+'</a>';


function func(name)
        {


            localStorage.setItem("Selectedname",name);

            window.location.href="form_apraise.html";

        }

谢谢

4 个答案:

答案 0 :(得分:1)

尝试使用启用弹出窗口 window.open('https://stackoverflow.com/','_ blank');

答案 1 :(得分:1)

cell.innerHTML = '<a onclick="func("' + name + '");">' + name + '</a>';

这应该有效。你真的不需要href属性,因为在这种情况下它不是很有用。任何元素都会响应onclick事件。

您还可以将参数放在其他属性中:

cell.innerHTML = '<a data-name="' + name + '" onclick="func();">' + name + '</a>';

然后在你的func()中使用this.dataset.name More on this here

答案 2 :(得分:0)

使用'this'作为对触发click事件的单元格的引用。

  cell.innerHTML = '<a href="#" onclick = "func(this);">'+name+'</a>';

使用element.text

访问单元格值
   function func(elem)
    {
        var name =elem.text;

        localStorage.setItem("Selectedname",name);

        window.location.href="form_apraise.html";

    }

答案 3 :(得分:0)

你有很多选择,但我会告诉你3个:

1-通常情况下,你可以在你的网址中发送参数,然后由你的后端处理,如下所示:http://www.example.com/viewName/myName然后你就可以使用将打开的window.open(URL,'_ blank')一个新窗口

2-您可以使用弹出窗口通过AJAX获取信息,并显示弹出窗口以接受您想要做的任何事情。

3-您可以使用data-name属性创建您的单元格,为您的单元格分配一个类,并使用任何库或Javascript只将事件分配给该类的所有元素,读取属性并调用window.open( URL,'_ blank')是这样的:

<tr><td class="myClass" data-name="Your Name">Your Name</td></tr>

在javascript(jQuery)中:

$(document).ready(function(){
   $(".myClass").click(function(){
     window.open("http://example.com/"+$(this).data("name"),"_blank")
   })
})

在您的情况下,简单的方法是将名称作为参数传递,打开一个新窗口,然后向客户端显示有关该名称的信息。