Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Jquery .html() вырезает теги (https://javascript.ru/forum/jquery/16547-jquery-html-vyrezaet-tegi.html)

ART-DELI 12.04.2011 14:17

Jquery .html() вырезает теги
 
Привет всем!
Столкнулся с тем, что необходимо через .html() получить содержимое элемента c строки. Само содержимое также состоит их тегов.
Например
var str='<ul>
        <li id="1"><option value='1'>TEST1<option></li>
        <li id="2"><select><option value='2'>TEST2<option></select></li>
        </ul>';


Сам код
function parseTEXT (data) {
$('#manufactute_object').append($(data).find("li.#1").html());    
}


Так вот с вариантом TEST2 все в норме. Передает все теги внутри <li></li>
А в ТEST1 теги <option value='1'><option> просто убираются.

И чего это вдруг так?

Serg_pnz 12.04.2011 14:21

value='1' - одинарные кавычки - это так и надо?

ART-DELI 12.04.2011 15:31

Менял кавычки на двойные, одинарные. Нечего не дало...Данные все равно без тегов выходят. Что ж не так то?

рони 12.04.2011 15:51

ART-DELI,
тег <option> это элемент <select> без селекта будет только текст этого опциона

ART-DELI 12.04.2011 16:05

Я понял... значит пойду колбасить тогда регулярку... Спасибо!

ART-DELI 13.04.2011 09:50

Помогите с регуляркой. Что то не выходит.

Входные данные

var data='[key:value]
[key:value]
[key:value]
[key:value]
[key:value]';



Функция

function parseTEXT (data) {
var str=$(data).find("li.#1").html();  
var re=new RegExp("/[(\b+):(\w+)]/","g");
var arr=re.exec(str);
}



Нужно каждый элемент [key:value] получить без скобок [] и присвоить массиву . Что бы потом можно было пройтись по массиву и обвернуть данные. Заранее благодарен!

рони 13.04.2011 10:22

ART-DELI,
Вариант...
var data='[key:value][key:value][key:value][key:value][key:value]';
function parseTEXT(c) {
    for (var d = RegExp("\\[(.+?):(.+?)\\]", "g"), b = [], a;
    (a = d.exec(c)) != null;) b.push(a[1], a[2]);
    return b
};
alert(parseTEXT(data));


или так
var data='[key:value][key:value][key:value][key:value][key:value]';
function parseTEXT(c) {
  c =  c.replace(/:/g,',').split(/\[|\]\[|\]/)
  return c
};
alert(parseTEXT(data));

ART-DELI 18.04.2011 11:49

Все решил.


Часовой пояс GMT +3, время: 08:31.