我有两个问题:
第1个问题:HTML元素可以有多个类(可以是多个类的一部分)吗?
<p class="paragraphClass" class="highlightClass"/> // is that allowed?
第二个问题:是否有一个javascript HTML解析器库或一组默认函数来搜索一串HTML&amp;给我所有具有特定类的HTML元素?我使用AJAX从服务器获取HTML(以文本而不是XML的形式返回),然后我需要将具有“可更新”类的所有HTML元素转换为文本区域HTML元素。
当我将HTML字符串作为文本或XML时,您认为将特定类的所有HTML元素转换为textareas的最简单方法是什么。
答案 0 :(得分:2)
第1个问题:HTML元素可以有多个类(可以是多个类的一部分)吗?
是的,但是像这样:
<p class="paragraphClass highlightClass"/>
第二个问题:是否有一个javascript HTML解析器库或一组默认函数来搜索一串HTML&amp;给我所有具有特定类的HTML元素?
执行此操作的最简单方法是jQuery(惊讶,惊讶):
var html = 'your html in a string here',
$html = $(html),
$elts = $html.find('.someClassName');
// $elts is a (array-like) jQuery object which
// contains all the elements in the HTML string with class 'someClassName'
有关详情,请参阅jQuery selectors API docs。
答案 1 :(得分:1)
通过用空格分隔,你可以在任何元素上拥有任意数量的类。例如:
<p class="paragraphClass highlightClass"></p>
使用jQuery等库来执行此操作。
答案 2 :(得分:0)
1)是的,但你的语法不正确。您可以指定多个以空格分隔的类,如:
<p class="paragraphClass highlightClass"/>
2)您可以使用一些元素.innerHTML属性将HTML插入DOM。该元素可能包含display: none;
,因此不会影响您的网页。然后你可以在它们上使用普通的DOM方法,如document.getElementByClassName('updatable');
注意,getElementByClassName()没有在IE中定义,所以你必须编写自己的,通过tagName选择,然后迭代匹配类,或使用像jQuery的。
答案 3 :(得分:0)
总是有jquery。您可以使用选择器选择该类的所有元素,然后将其转换为textarea。听起来你想要转换它来编辑那段。
$(".paragraphClass").each(function{
$(this).replaceWith("<textarea>"+ $(this).text() +"</textarea>");
})