jQuery 向尚未加载的元素添加文本
jQuery adding text to an element that has not yet loaded
仅供参考,这发生在我的 WordPress 管理区,但它并不是真正特定于 WP 的。
我有一个 link,单击它会创建一个包含几个子元素的新 DOM 元素。我正在尝试向这个新元素添加一个 class 名称,如下所示:
<script type="text/javascript">
jQuery(document).ready( function($) {
$('tr#post-65 span.inline a.editinline').click(function() {
$('tr#edit-65').addClass('someclass');
});
});
</script>
因此 tr#post-65
始终存在,但 table 行 edit-65
仅在单击 a.editinline
时存在。但是,tr#edit-65
不是由我上面的 jQuery 创建的 ,而是由我无权访问的 WP 自己的 jQuery 代码创建的。
所以,我的问题是,如何将 class 添加到加载我自己的 jQuery 块后创建的元素?是否可以检测元素 edit-65
何时成功 loaded/created 和 只有然后 添加我的自定义 class 到它?
创建一个间隔以定期检查元素是否存在。完成后清除间隔:
<script type="text/javascript">
jQuery(document).ready( function($) {
$('tr#post-65 span.inline a.editinline').click(function() {
var int = setInterval(function(){
if($('tr#edit-65').length>0)
{$('tr#edit-65').addClass('someclass');
clearInterval(int);
}
}, 100);
});
});
</script>
试试这个:由于您无法控制元素的创建,您可以使用 setInterval 解决并检查元素是否已创建,然后设置 class 并退出。
jQuery(document).ready( function($) {
$('tr#post-65 span.inline a.editinline').click(function() {
var interval = setInterval(function(){
if($('tr#edit-65').length)
{
$('tr#edit-65').addClass('someclass');
clearInterval(interval );
}
}, 500);
});
});
仅供参考,这发生在我的 WordPress 管理区,但它并不是真正特定于 WP 的。
我有一个 link,单击它会创建一个包含几个子元素的新 DOM 元素。我正在尝试向这个新元素添加一个 class 名称,如下所示:
<script type="text/javascript">
jQuery(document).ready( function($) {
$('tr#post-65 span.inline a.editinline').click(function() {
$('tr#edit-65').addClass('someclass');
});
});
</script>
因此 tr#post-65
始终存在,但 table 行 edit-65
仅在单击 a.editinline
时存在。但是,tr#edit-65
不是由我上面的 jQuery 创建的 ,而是由我无权访问的 WP 自己的 jQuery 代码创建的。
所以,我的问题是,如何将 class 添加到加载我自己的 jQuery 块后创建的元素?是否可以检测元素 edit-65
何时成功 loaded/created 和 只有然后 添加我的自定义 class 到它?
创建一个间隔以定期检查元素是否存在。完成后清除间隔:
<script type="text/javascript">
jQuery(document).ready( function($) {
$('tr#post-65 span.inline a.editinline').click(function() {
var int = setInterval(function(){
if($('tr#edit-65').length>0)
{$('tr#edit-65').addClass('someclass');
clearInterval(int);
}
}, 100);
});
});
</script>
试试这个:由于您无法控制元素的创建,您可以使用 setInterval 解决并检查元素是否已创建,然后设置 class 并退出。
jQuery(document).ready( function($) {
$('tr#post-65 span.inline a.editinline').click(function() {
var interval = setInterval(function(){
if($('tr#edit-65').length)
{
$('tr#edit-65').addClass('someclass');
clearInterval(interval );
}
}, 500);
});
});