как применить выбор элемента jQuery к строковой переменной - PullRequest
6 голосов
/ 11 марта 2010

У меня есть html, извлеченный в строку var, и я хочу использовать выбор элемента jQuery только для этой строки. Возможно ли это?

Например:

HTML:

<div class=message>
  This is a message. Click <a class=link id=link1 href=example.com>here</a>
</div>

JQuery:

$('div.message').each(function(i, item) {
  myHtml = $(this).html();
  //select <a> tag attributes here
)};

Итак, в этом примере я хочу извлечь id и href из тега <a> в myHtml.

Спасибо

Ответы [ 4 ]

10 голосов
/ 11 марта 2010

Если я правильно понимаю, у вас есть HTML-код в строковой переменной, и вы хотите сделать запрос в этом?

// Suppose you have your HTML in a variable str
var str = '<div class="message">This is a message. Click '
        + '<a class="link" id="link1" href="example.com">here</a></div>​​​​​​​​​​​​​​​';

// You query the DOM fragment created by passing the string to jQuery function.
// $(<string>) - creates a DOM fragment (string must contain HTML)
var anchor = $('a', $(str));

// Then you can retrieve individual properties and/or contents:
var id = anchor.attr('id');
var href = anchor.attr('href');
var text = anchor.text();
0 голосов
/ 11 марта 2010

Существует плагин jQuery ( здесь ), который можно использовать для анализа строки как XML DOM, а затем использовать jQuery для ее запроса. Это должен быть XML, а не «расслабленный» тип XML, который вы иногда видите в HTML (то есть вам нужны кавычки вокруг значений вашего атрибута).

0 голосов
/ 11 марта 2010

Если вам нужно обработать несколько элементов в вашей структуре, вы можете сделать это

$('div.message').each(function(i, item) { 
  // find desendant of the item using "find"
  var alink = $(this).find('a.link');
  // Process the item
  var id = alink.attr('id'); 
  var href = alink.attr('href'); 
)}; 
0 голосов
/ 11 марта 2010

Вы можете сделать что-то вроде:

var aID = $('div.message a.link').attr('id');
var aHREF = $('div.message a.link').attr('href');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...