помогите разобраться 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, время: 19:06. |