根据另一个元素的更改获取一个元素(jquery)
Get an element based on a change of another element (jquery)
我有以下代码:
<tr class="my-field my-field-color-picker" data-name="background_colour" data-type="color_picker">
<td class="my-input">
<input type="text" class="wp-color-picker">
</td>
</tr>
<tr class="my-field my-field-wysiwyg" data-name="text_block" data-type="wysiwyg">
<td class="my-input">
<iframe>
<html>
<body id="tinymce" class="mce-content-body">
some text
</body>
</html>
</iframe>
</td>
</tr>
由于另一个线程使用了$('tr[data-name="background_colour"] input.wp-color-picker')
,我能够class="wp-color-picker"
地获取文本输入
当此文本输入的值发生变化时。我想更改<body>
的背景颜色
<body>
位于具有data-type="wysiwyg"
的tr
元素内的iframe
内,该元素与具有data-name="background_colour"
的tr
处于同一级别
这有点混乱,所以我希望这是有道理的。
js小提琴:https://jsfiddle.net/rk3fcjkb/19/
你可以做这样的事情
$(document).ready(function(){
$('tr[data-name="background_colour"] input.wp-color-picker').on('keyup', function(){
$(this).closest('tr').siblings('tr[data-type="wysiwyg"]').find('iframe').contents().find('body').css({
background: $(this).val()
});
});
});
演示
PS:访问iframe中的内容可能会变得非常讨厌。
您需要先获取 iframe,然后从那里转到 body
标签:
$( ".wp-color-picker" ).keyup(function() {
$('tr[data-type="wysiwyg"] td iframe').contents().find("body").css("background-color","blue");
});
小提琴示例
注意:要触发change
,您需要取消对输入元素的聚焦,如果您希望它立即执行此操作,请将其更改为keyup
。
相关文章:
- 可以't附加html元素jquery
- 循环遍历元素jquery选择器
- 在ajax加载的元素jquery上包含现有的jquery函数
- 如何删除元素列表中的类并添加到另一个元素 Jquery.
- 获取单击的类元素 jQuery 的名称值
- 获取上一个元素 jQuery 的内容
- 根据另一个元素的更改获取一个元素(jquery)
- 区分不同的可拖放元素(jQuery 拖放)
- 除了最后一个<td>元素-Jquery
- 获取子元素jQuery的单选按钮值
- 捕获元素jquery外部的mousedown事件
- .append到非DOM元素jQuery
- 获取其父元素的精确子元素.Jquery
- 获取重复结构中的特定元素jquery
- 捕获隐藏输入元素jQuery的值
- 使用onclick函数获取点击的元素jquery
- 返回父元素 jquery 中的输入值
- 按属性查找元素 jQuery
- 选择元素 jQuery
- 按子元素 - jQuery 的数据 ID 对 li 进行排序