Есть ли способ использовать переменную JS в качестве ввода вместо селектора jquery "#id"? - PullRequest
0 голосов
/ 02 ноября 2010

Я хочу знать, можем ли мы дать переменную вместо #anyId внутри селектора.

На самом деле я пытаюсь этот код,

<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<div id="aDiv123">
  <p id="abcd1234" class="abcd123">Click me!</p>
</div>

<script>
    $("p").live("click", function() {
        $(this).after("<p id='abcd123' class='abcd2323'>Another paragraph!</p>");
        var number = this.id.match(/^abcd(\d+)$/)[1];
        var iD = this.id;
        alert(number);
        alert(iD);
        var div = "#"+"aDiv"+number;
        alert(div)
        $(div).remove();
    });
</script>

</body>
</html>

Это ссылка fiddle для вышеуказанного кода.

Любые предложения о том, где я делаю это неправильно !!!!

Спасибо!

Ответы [ 5 ]

4 голосов
/ 02 ноября 2010

Да, вы можете использовать переменную, если она содержит строку, которая является допустимым селектором jquery, или ссылку на элемент DOM, или ссылку на другой объект jquery.если вы застряли с использованием jquery.

http://api.jquery.com/jQuery/

3 голосов
/ 02 ноября 2010

Я считаю, что ваша проблема - просто опечатка.У вас есть элементы с идентификаторами #aDiv123 и #abcd1234, но вы пытаетесь удалить #aDiv1234.Исправьте это, и это будет работать.

2 голосов
/ 02 ноября 2010

Проблема в том, что ваш Div отличается от номера абзаца, он должен быть:

<div id="aDiv1234">
<p id="abcd1234">

Not: aDiv123

1 голос
/ 02 ноября 2010

Функция $ JQuery принимает только строку для параметра, поэтому вы можете создать свой собственный селектор, передавая некоторые переменные.

var sel = tag + ':visible';
$(sel) -> all visible "tags"
0 голосов
/ 02 ноября 2010

Если вы хотите выполнить операцию над элементом div, содержащим абзац, почему бы не сделать:

$('p').live('click', function() {
  $(this).parent().remove();
});

... или ...

$('p').live('click', function() {
  $(this).parents('.discriminator').remove();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...