0
4

6 回答 6

5

您不需要将 ID 传递给函数,因为它本身接收元素。如果需要,它可以使用.id属性访问器获取 ID:

function passto(elem) {
    alert(elem.id);
    // Do other stuff
}

演示

于 2013-09-08T04:52:03.557 回答
3

如果您打算使用 jQuery,onclick直接使用该属性几乎没有意义。为您的链接添加一个类,然后像这样定位它们:

标记:

<a id="some-id-1" class="your-neato-class" href="#">Some Neat Title</a>

jQuery:

$('a.your-neato-class').on('click', function(e){

    e.preventDefault(); // stop anchor navigation

    // e is a JavaScript element that has some useful properties...
    passTo(e.target.id); 
});

正如@Jack 所指出的,您也可以使用-this.id来代替e.target.id-this是在事件委托内部使用时触发事件的 DOM 元素。见:http ://remysharp.com/2007/04/12/jquerys-this-demystified/

于 2013-09-08T05:36:42.897 回答
2
echo '<li ><a  id="'.$rowmnu2['link'].'" ref="#" onclick="passto('.$rowmnu2['link'].')">'.$rowmnu2['title'].'</a></li>';
于 2013-09-08T05:12:03.587 回答
1

您应该做的第一件事是正确地转义您的变量以供 HTML 使用:

printf('<li ><a id="%s" href="#" onclick="passto.call(this, event)">%s</a></li>',
    htmlspecialchars($rowmnu2['link'], ENT_QUOTES, 'UTF-8'),
    htmlspecialchars($rowmnu2['title'], ENT_QUOTES, 'UTF-8')
));

我已经改变了onclick这样的属性:

passto.call(this, event)

passto()被调用时,它将this指向元素本身,例如

function passto(event)
{
    event.preventDefault();
    alert(this.id);
}
于 2013-09-09T02:05:42.350 回答
1

尝试这个。

  echo '<li ><a  id="'.$rowmnu2['link'].'" href="#" onclick="passto(this.id)">'.$rowmnu2['title'].'</a></li>';
于 2013-09-08T04:51:56.737 回答
0

尝试这个。:)

<li><a  id="'.$rowmnu2['link'].'" href="#" onclick="passto(this.id)">'.$rowmnu2['title'].'</a></li
于 2013-09-08T05:03:02.843 回答