我有独特的文字,我希望在该文本上获取id。
<ul id="test1">
<li><a href="#" onclick="myfunction('users')">My Link</a></li>
</ul>
<ul id="test2">
<li><a href="#" onclick="myfunction('Account')">Test Link</a></li>
</ul>
我想获得UL ID,其li锚标签onclick功能包含文字用户。
答案 0 :(得分:2)
您可以使用filter
执行此操作:
var $usersUl = $('a').filter(function() {
return $(this).attr('onclick').indexOf('users') != -1;
}).closest('ul');
但是应该注意的是,让你的UI依赖于JS函数调用中的参数有点难看,如果不是黑客攻击的话。如果可以,请更改HTML以包含一些data
属性并按以下方式过滤:
<ul id="test1">
<li><a href="#" onclick="myfunction('users')" data-type="users">My Link</a></li>
</ul>
<ul id="test2">
<li><a href="#" onclick="myfunction('Account')" data-type="account">Test Link</a></li>
</ul>
var $users = $('a').filter(function() {
return $(this).data('users');
}).closest('ul');
答案 1 :(得分:1)
使用attribute contains selector:
<强> Fiddle 强>
var id = $('ul > li > a[onclick*="\'users\'"]').closest('ul').attr('id');
或者也包括函数名称:
var id = $('ul > li > a[onclick="myfunction(\'users\')"]').closest('ul').attr('id');
答案 2 :(得分:0)
在这种情况下我不会使用onclick,尝试这样的事情:
<ul id="test1">
<li><a href="#" data-value="users">My Link</a></li>
</ul>
<ul id="test2">
<li><a href="#" data-value="Account">Test Link</a></li>
</ul>
然后是jQuery:
$("li").click(function() {
parent = $(this).parent(); // your UL element
value = $(this).data('value'); // your parameter, you can use it now
// Rest of your function right here
});
答案 3 :(得分:0)
这里是:
$('ul a').click(function(){ // click event for anchor tag which is inside ul
if($(this).indexOf("users") == -1) // check if text contains users
{
console.log($(this).parent("ul").attr("id")); // get its parent ul id
}
})
答案 4 :(得分:0)
在事件处理程序中传递当前对象,并使用ul
,closest()
onclick="myfunction(this,'users')"
的ID
<强> Live Demo 强>
HTML 的
<ul id="test1">
<li><a href="#" onclick="myfunction(this,'users')">My Link</a></li>
</ul>
<ul id="test2">
<li><a href="#" onclick="myfunction(this,'Account')">Test Link</a></li>
</ul>
的Javascript
function myfunction(obj, parm)
{
alert($(obj).closest('ul').attr('id'));
}
答案 5 :(得分:0)
答案 6 :(得分:0)
试试这个:
$(document).ready(function(){
$('li a').on('click', function(){
alert($(this).closest('ul').prop('id'));
});
});
这是我的小提琴示例http://jsfiddle.net/58CTf/3/
答案 7 :(得分:0)
<script>
function myfunction(param, event) {
console.log(event.target.parentElement.parentElement.id);
}
</script>
答案 8 :(得分:0)
试试这个效果很好(使用父函数)
$(function(){
$("ul li").find("a:contains(Link)").parent().parent().attr("id");
})