我有一个项目列表,我想对其执行相同的操作。它们都有单独的ID,因此我希望能够将每个ID的名称传递给Jquery,以便仅对该ID执行操作。 例如:
<a href="#" id="1">one</a>
<a href="#" id="2">two</a>
<div id="#test1"></div>
<div id="#test2"></div>
我希望能够做到这样的事情:
function doSomething(x) {
var div=x+'div';
$(x).click(function() { $.(div).slideDown(); });
}
有什么想法吗?
感谢。
答案 0 :(得分:3)
使用onclick
属性,稍微简化了代码:
<a href="#" id="1" onclick="handleClick(this)">one</a>
<a href="#" id="2" onclick="handleClick(this)">two</a>
<div id="#test1"></div>
<div id="#test2"></div>
function handleClick(x) {
$('#test'+ x.id).slideDown();
}
答案 1 :(得分:3)
这是如何在jquery fn中传递变量
<title>Test</title>
<script type="text/javascript">
$(document).ready(function() {
$("#but").click(function() {
var n = $(this).attr("n");
alert(n);
});
});
</script>
</head>
<body>
<a id="but" href="#" n="I Love You">Click Here</a>
</body>
答案 2 :(得分:2)
<a href="#" class="x" d="test1">one</a> <a href="#" class="x" d="test2">two</a> <div id="test1" class="x"></div> <div id="test2" class="x"></div>
function doSomething(x)
{
$("a.x").click(function()
{ $( "div#" + $(this).attr("d") ).slideDown(); }
);
}
答案 3 :(得分:2)
您可以将jQuery元素直接传递给函数,如下所示:
var doSomething = function(el){
el.click(function(){ });
};
// Single element
var $el = $('a.class');
doSomething($el);
// Multiple elements
var $elms = $('a.class, a#id');
doSomething($elms);
答案 4 :(得分:0)
您可以使用此类data
属性将数据与html元素一起存储,并使用jQuery data()
方法检索它们。试试这个。
Html更改
<a href="#" data-id="1">one</a>
<a href="#" data-id="2">two</a>
<div id="test1"></div>
<div id="test2"></div>
使用此js
$('a').click(function(){
$('#test' + $(this).data('id')).slideDown();
});
要使用jQuery data
方法检索数据属性值,只需传递属性的后半部分即可。因此,在这种情况下,将id
传递给data
将为我们提供id值。