#javascript #jquery #html
#javascript #jquery #HTML
Вопрос:
У меня есть строка, которая содержит несколько div, как получить один из них по идентификатору?
Редактировать
Я использую плагин выбора правой кнопкой мыши, поэтому, когда я выбираю div.
$("#first #second").contextMenu({
menu: 'myMenu'
},
function(action, el, pos) {
switch (action) {
case "do":
{
и выбор является базовым
$(el).html()
Итак, это код, который содержит html, который находится в #second, но # second — это не один div, это множество divs с этим идентификатором, и я хочу, чтобы при нажатии на этот div выбирался определенный идентификатор и получался его контекст. Есть ли более простой способ?
Комментарии:
1. Не могли бы вы, пожалуйста, предоставить пример кода, чтобы мы могли видеть, как вы получаете строку, содержащую divs.
2. Строка? Так вы не работаете с DOM? Вы хотите получить ответ в виде регулярного выражения? Я думаю, я прошу, пожалуйста, предоставьте более подробную информацию. О, и добро пожаловать в stack overflow 🙂
3. Другими словами, вам нужна помощь в синтаксическом анализе строки?
4. -1 Вам нужно предоставить более подробную информацию, если вы надеетесь получить ответ. Например, пример фрагмента HTML был бы хорошим началом. Примечание: вы можете отредактировать свой вопрос
Ответ №1:
Вы можете заставить jquery интерпретировать строку как набор тегов, подобных этому:
$(htmlstring);
Так что что-то вроде этого может сработать:
$("<div><div id='test'></div></div>").find("#test");
Редактировать:
Теперь, с обновленным вопросом, это, конечно, не то, что вы хотите.
У вас не может быть более одного элемента с одинаковым идентификатором. Идентификаторы должны быть уникальными идентификаторами.
Комментарии:
1. ну, поскольку OP изменил вопрос, похоже, что мы оба потратили впустую наше время 🙂 но для справки
filter
лучше, чемfind
здесь, посколькуfilter
не требует внешнего контейнера.2. и я в любом случае добавлю вам 1, поскольку вы дали хороший ответ до того, как вопрос был изменен.
3. true, 1 для этого. забавно видеть ответы, все как-то пытаются интерпретировать вопрос, который оказался совершенно другим 😉
4. 1 за использование
filter
, спасло меня, хотя и не имеет отношения к вопросу, имеет ли отношение к моему поиску в Google 😉5. 1, потому что, хотя это и не отвечает на вопрос, это отвечает именно на то, что я искал. Сэкономил мне много времени 🙂
Ответ №2:
В вашем случае вы можете обернуть el
и перейти от него, вот так:
$(el).find('.something-else').blah(); // ...
el
это не строка, это элемент DOM.
Некоторая ваша путаница может быть вызвана написанием $(el).html()
. Если бы вы выполняли отладку с помощью этого, это выглядело бы как строка, потому что вы извлекали фактический HTML, хранящийся в элементе DOM, который у вас был под рукой.