2017-04-11 58 views
0

对于涉及将点击事件应用于动态创建的对象的情况,我已经知道使用(“点击”)。在这种情况下,我想单击一个按钮来选择另一个对象的文本。使用jquery,我如何选择动态创建的文本?

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

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

你可以看到在行动网站上的http://codepen.io/Matiny/full/NjKEqw/

+2

那么你尝试? – epascarello

+0

我尝试过使用(点击)才意识到它只在点击动态添加的元素时才起作用,在这里不是这种情况。 – Matiny

+0

不清楚你的意思,它只能通过*“点击动态添加的元素”* .... *是不是你所点击的是什么?你点击按钮,引用兄弟,获取文本,运行函数转换它,把文本放回去,交换按钮文本“ – epascarello

回答

0

转换摄氏到华氏,你可以使用这个公式:

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

和华氏温度转换为摄氏温度,你可以使用这个公式:

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

此代码被测试和瓦特扫你的codepen

$('.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'); 
    } 
}); 
+0

我最终自己找到了答案。对不起浪费你们的时间。 – Matiny

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

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

} 

这应该改变与类div标签是HTML .temp改为“30”任何时候你按一下按钮。

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>

相关问题