我想根据' id'选择一个页面元素。父母,加上“班级”#39;其中一个孩子。这在子元素是span元素时有效,但在它是div时失败。
如何选择下面的特定 #testDiv .highlightme 项?
<script>
$(document).ready(function(){
$('#testSPAN .highlightme').css("background-color","yellow");
$('#testDIV .highlightme').css("background-color","blue");
});
</script>
<p id="testSPAN">
<span class="highlightme">
This should highlight, and does. Good.
</span>
</p>
<p id="testDIV">
<div class="highlightme">
This should highlight, but doesn't because it's in a div.
</div>
</p>
答案 0 :(得分:3)
p
标记仅采用内联元素,而不采用其他块。
http://www.w3.org/TR/html401/struct/text.html#edef-P
“P元素代表一个段落。它不能包含块级元素(包括P本身)。”
这是您问题的核心,它是无效的HTML。
答案 1 :(得分:0)
无论是div还是span,都无关紧要。您可以将类元素归因于任何标记。
问题不在于您的jquery代码,而是将div元素包装在p中 它不允许在HTML中! :)
答案 2 :(得分:0)
这里已经说过,这是真的,你不应该把块元素放在内联元素中,但是如果你不能修改html或者你不被允许,这里有一点工作会为你工作......
$(document).ready(function(){
$('[id*="test"]').each(function() {
var bgcolor = "yellow";
if ($(this).children('[class="highlightme"]') ) {
$(this).children('[class="highlightme"]').css('background-color', bgcolor);
}
if ($(this).next().hasClass("highlightme") == true) {
$(this).next().attr('class', 'highlightme').css('background-color', bgcolor);
}
});
});
我希望这段代码可以帮助你,如果你还需要其他东西,请告诉我;)