使用JQuery在span中切换文本

时间:2014-03-14 18:38:26

标签: javascript jquery

我想在单击div时切换文本,但我无法使其工作。我可以使用此

进行一次更改
$(document).ready(function() { 
    $(".select_button").on("click", function() {
        $(this).find('.selected').text('Image Selected');
    });
});

但我正试图让它切换

这是HTML

<div class="select_button">
       <label>
            <input type="checkbox" name="include_standard" class="include_standard"
               value="<? echo $row['newest_image']; ?>">
             <span class="selected">Use Image</span>
       </label>
</div>

这是JQuery

$(document).ready(function() { 
   $(".select_button").on("click", function() {
      $(this).find('.selected').text(text() == 'Use Image' ? 'Selected': 'Use Image');
    });
});

它不会抛出任何错误或做任何事情。

5 个答案:

答案 0 :(得分:2)

我建议:

$(".select_button").on("click", function () {
    $(this).find('.selected').text(function (i, oldText) {
        return $.trim(oldText) == 'Use Image' ? 'Selected' : 'Use Image';
    });
});

JS Fiddle demo

参考文献:

答案 1 :(得分:0)

<script>
$(document).ready(function(){
  $(".select_button").mousedown(function(){
     $(this).text("Your New Text")
 });
 $(".select_button").mouseup(function(){
     $(this).text("Your Old Text")
 });
});
</script>

答案 2 :(得分:0)

<script>
$(document).ready(function(){
  $(".select_button").click(function(){
     $(this).addClass("NewClass");
     $(this).text("Your New Text");
 });
 $(".NewClass").click(function(){
     $(this).removeClass("NewClass");
     $(this).text("Your Old Text");
 });
});
</script>

答案 3 :(得分:0)

你可以调用范围内的另一个text()方法吗?

这可能意味着每次导致&#39;使用图像&#39;总是从你的三元声明中返回。

我建议将$(this).find('.selected')的查找结果存储到变量中,然后在该变量上调用.text(),以便从包含所选元素的元素中获取文本。

答案 4 :(得分:0)

试试这个。

$(document).ready(function() { 
   $(".select_button").on("click", function() {

   var spanvar = $(this).find('.selected');
   $(spanvar).text(spanvar.text() == 'Use Image' ? 'Selected': 'Use Image');
   });
});