在$(this)之后获取一个元素

时间:2017-06-01 11:41:39

标签: javascript jquery

我尝试使用jquery更改div框中的文本插入。这是代码:



<div onClick="$(this span).text('My new Text');" class="switch switch-success" style="float: right;">
  <label>
    <input type="checkbox"><span>Yes</span>
  </label>
</div>
&#13;
&#13;
&#13;

我想改变这个&#34;是&#34;到&#34;不&#34;。谢谢你的帮助;)

3 个答案:

答案 0 :(得分:1)

使用.find方法

查看工作小提琴here

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div onClick="$(this).find('span').text('My new Text');" class="switch switch-success" style="float: right;">
  <label>
    <input type="checkbox"><span>Yes</span>
  </label>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您有两种选择。

  1. 传递this第二个参数context

    $('span', this).text('My new Text');
    
  2. 获取this元素并使用find获取span

    $(this).find('span').text('My new Text');
    

答案 2 :(得分:0)

请分离结构,样式和功能 - CSS,HTML和JS不应该在同一个空间 - 它总是更好地分离代码以获得更好的代码质量。还可以切换复选框的状态,以便“已检查”和“未检查”状态中有不同的文本。

你甚至可以用CSS

来做到这一点

$('.switch').click(function(){
  $(this).find('span').text('My new Text')
})
.switch{float: right}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>

<div class="switch switch-success" >
  <label>
    <input type="checkbox"><span>Yes</span>
  </label>
</div>