使用jquery,如何选择动态创建的文本?

时间:2017-04-11 23:00:23

标签: javascript jquery html

我已经知道使用on(" click")来处理涉及将点击事件应用于动态创建的对象的情况。在这种情况下,我想点击一个按钮来选择另一个对象的文本。

  <div class="main">
     <div class="temp"><p></p></div>
     <button class="degrees">Celsius</button>
  </div> 

这是我的HTML示例。基本上,当页面加载时,数据会动态添加到空段落中。我希望能够选择段落中的文本,并对其执行操作。该段落的文字将显示温度,我希望有一个切换摄氏度和华氏度的功能。

您可以在http://codepen.io/Matiny/full/NjKEqw/

看到该网站正在运行

3 个答案:

答案 0 :(得分:0)

要将摄氏度转换为华氏度,您可以使用以下公式:

T(°F) = T(°C) × 1.8 + 32

要将华氏温度转换为摄氏温度,您可以使用以下公式:

T(°C) = (T(°F) - 32) / 1.8

此代码经过测试并在您的代码集上运行

$('.degrees').on('click', function() {
    var currentDegree = parseInt($('.temp').text());
    if($(this).text() == 'Celsius') {
        var fahrenheit = currentDegree * 1.8 + 32;
        $('.temp').text(fahrenheit);
        $(this).text('Fahrenheit');
    } else {
        var celsius = (currentDegree - 32) / 1.8;
        $('.temp').text(celsius);
        $(this).text('Celsius');
    }
});

答案 1 :(得分:0)

JQuery(document).on ("click", ".degrees", function  () {

    JQuery(".temp").html("30");

}

这应该将div标签的HTML更改为类.temp以读取&#34; 30&#34;任何时候你点击按钮。

答案 2 :(得分:0)

试试这个

 $('.degrees').click(function(){
 
  var range = document.createRange();
    var selection = window.getSelection();
 
     range.selectNodeContents(document.getElementById('select-text'));   
    selection.removeAllRanges();
    selection.addRange(range);
 
 
 
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="main">
     <div class="temp"><p id="select-text">Your dymic loaded data</p></div>
     <button class="degrees">Celsius</button>
  </div>