2012-02-10 2 views
1

У меня есть список элементов, для которых я хотел бы выполнить одно и то же действие. У всех из них есть отдельные идентификаторы, поэтому я хочу передать имя каждого из них в Jquery, чтобы действие выполнялось только на этом идентификаторе. Например:Передача переменной в функцию JQuery

<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(); }); 
} 

Любые мысли?

Спасибо.

+1

'ид = "# Foo"' является незаконным. Вы не можете иметь '#' в 'id'. – Blender

ответ

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

Используйте атрибут 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(); 
} 
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); 
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.

+0

Спасибо всем - отлично работает сейчас! – user988129

+2

Kool, не стесняйтесь пометить его как ответ. – ShankarSangoli

3

Это, как передать переменную в JQuery п

<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> 

Смежные вопросы