如果类存在,我试图将文本附加到p
元素。我会确定下面的内容会起作用,但出于某种原因,$(this)
的读取方式与我的预期不同。也许这是由于jQuery的设置方式。
我希望p
文字为Test This is gone
当我在控制台中查看$(this)
时,它显示了该功能所在的对象。
我的 html 看起来像这样
<div class="place-holder">
<p class="place gone">Test</p>
</div>
JQUERY
var app = app || {};
!function(){
app.test = {
init: function ( ) {
if($('.place').hasClass( "gone" ) ){
console.log($(this));
$(this).append('This is gone');
}
}
}
$(document).ready(app.test.init);
}(jQuery);
有人有什么想法吗?
答案 0 :(得分:2)
你应该能够做到:
$('.place.gone').append('This is gone');
此外,如果输入可能是恶意的(包含HTML),则应使用document.createTextNode()
附加:
$('.place.gone').append(document.createTextNode('This is gone'));
$(this)
通常是指你正在使用的元素,但在这种情况下,你试图从init函数中获取this
(因为我们不知道打电话,我不确定它可能是什么。)
我想你可能正在考虑这样的事情:
$('.place').forEach(function() {
//In this case, forEach assigns the element to the 'this' variable.
if ( $(this).hasClass( "gone" ) ) {
console.log($(this));
$(this).append('This is gone');
}
}
答案 1 :(得分:0)
除非你附加的文字应该包含HTML,否则你应该使用
$('.place.gone').append(document.createTextNode('Hello World'));