Передача переменной в функцию Jquery - PullRequest
1 голос
/ 10 февраля 2012

У меня есть список предметов, над которыми я хотел бы выполнить то же действие.Все они имеют отдельные идентификаторы, поэтому я хочу иметь возможность передавать имя каждого из них в 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(); });
}

Есть мысли?

Спасибо.

Ответы [ 5 ]

3 голосов
/ 03 июля 2013

Как передать переменную в 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>

3 голосов
/ 10 февраля 2012

Используйте атрибут 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 голосов
/ 10 февраля 2012

Вы можете передать элемент / ы 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);
2 голосов
/ 10 февраля 2012
<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(); }
   );
}
0 голосов
/ 10 февраля 2012

Вы можете использовать такие атрибуты 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.

...