知道如何使这项工作?
$("div[data-color]").each(function() {
$(this).children('p').css('color', function () {
return $(this).data('color')
});
});
Run Code Online (Sandbox Code Playgroud)
结构看起来像
<div data-color="#ff0000"><p>text that needs right color</p></div>
Run Code Online (Sandbox Code Playgroud)
内部不需要那个回调函数this指的p不是div.
$("div[data-color]").each(function() {
$(this).children('p').css('color', $(this).data('color'))
});
Run Code Online (Sandbox Code Playgroud)
$("div[data-color]").each(function() {
$(this).children('p').css('color', $(this).data('color'))
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-color="#ff0000">
<p>text that needs right color</p>
</div>Run Code Online (Sandbox Code Playgroud)
或者像回调那样做
$("div[data-color] > p").css('color',function(){
return $(this).parent().data('color');
// or return this.parentNode.dataset.color
});
Run Code Online (Sandbox Code Playgroud)
$("div[data-color] > p").css('color', function() {
return $(this).parent().data('color');
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-color="#ff0000">
<p>text that needs right color</p>
</div>Run Code Online (Sandbox Code Playgroud)
使用纯JavaScript使用querySelectorAll和Array#forEach方法
Array.from(document.querySelectorAll("div[data-color] > p")).forEach(function(ele) {
ele.style.color = ele.parentNode.dataset.color;
});
Run Code Online (Sandbox Code Playgroud)
Array.from(document.querySelectorAll("div[data-color] > p")).forEach(function(ele) {
ele.style.color = ele.parentNode.dataset.color;
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-color="#ff0000">
<p>text that needs right color</p>
</div>Run Code Online (Sandbox Code Playgroud)