помогите разобраться HTMLParagraphElement
в общем суть вопроса в следующем
1) в цикле перебрал все элементы 2) получил и текст и прочее фуфло которое нужно отфильтровать и оставить только <p></p> проблема в том что я пытаюсь сделать так var nodes = target.parentNode.childNodes; for(i=0; i<nodes.length; i++){ if(nodes[i] instanceof HTMLParagraphElement){ но вот печаль не кроссбраузерно!! (nodes[i] instanceof HTMLParagraphElement) в ие не работает как можно кроссбраузерно решить проблемку?? |
if (node.tagName == "P") Только надо проверять элемент это или текстовая нода. /** * @param {Node} node * @return {boolean} */ function isTextNode(node) { return node.nodeType === 3; } /** * @param {Node} node * @return {boolean} */ function isElement(node) { return node.nodeType === 1; } |
спасибо попробую))
|
tsigel, ну на самом деле не обязательно. .tagName будет undefined только и всего.)
|
дк все таки кто нибудь для ie вариант применял?? хотя бы варианты
|
nesfiraty, один вариант тебе показали. Так как ты хочешь: через instanceof - сделать невозможно. Нет в осле отдельных объектов под каждый элемент, есть только общий Node.
|
Обычно и делают через nodeName и .lowercase() на всякий случай. Или в ишаке и nodeName нету?
upd, вот такой есть каноничный кусок getTextNode: function(node) { var next; var res = null; if (node.nodeType === 1) { if (node = node.firstChild) { do { next = node.nextSibling; res = this.getTextNode(node); if(res) return res; } while(node = next); } } else if (node.nodeType === 3) { if (/\S/.test(node.nodeValue)) { return node; } } }, |
http://learn.javascript.ru/basic-dom...ame-и-tagname
Можно nodeName с приведением к нижнему регистру или tagName всегда в верхнем |
А, вот оно что. Ну вот и я узнал. :)
|
спасибо ребят попробую разобраться)) только начал изучать так что за глупость не ругайте))
|
Часовой пояс GMT +3, время: 13:20. |