这是我的HTML
</label>
<input type="checkbox" id="ServiceLocationActive" name="ServiceLocationActive" checked="" value="false">
<span class="toggle"></span>
<span class="toggle-text">Active</span>
<label>
这是我的JavaScript
$('#ServiceLocationActive').on('change', function(){
if ($(this).is(':checked'))
$(this).next('.toggle-text').html('Active');
else
$(this).next('.toggle-text').html('Inactive');
});
问题是下一个没有返回任何东西。如果我尝试仅使用.next()
,我将获得第一个跨度,但如果我使用.next('.toggle-text')
,我将无法获得任何结果。更进一步的荒谬是如果我使用next().next()
我会得到我想要的那些。
这里发生了什么?
答案 0 :(得分:1)
.next()
会立即返回兄弟姐妹,元素.toggle
元素不是.toggle-text
元素。
您可以使用.siblings()
$(this).siblings('.toggle-text')