Jquery:通过页面刷新识别文本更改

时间:2017-10-09 10:27:05

标签: javascript jquery

我试图从父div类中提取价格。初始页面加载时工作正常。但是我的页面中有一个下拉列表。当我更改项目时,将更改父div价格。但提取的价格没有变化。因为页面没有刷新。

def csv_to_OrderedDic1(path, dic_key='uniqueID'):
    '''

    Parameters:
        dic_key: the name of the column to be used as the dictionary key

    '''
    df = pd.DataFrame.from_csv(path, sep='\t', header=0)
    # Get an unordered dictionary
    unordered_dict = df.set_index(dic_key).T.to_dict('list')
    # Then order it
    ordered_dict = OrderedDict((k,unordered_dict.get(k)) for k in df.dic_key)
    return ordered_dict

如何找到价格变动?

我尝试了var a = $('.price').text(); var t_section += '<p>Sign up to earn '+ rewardPts + ' points for this purchase</p>'; $('#msg').append(t_section ); 个事件。但是,这不起作用。

4 个答案:

答案 0 :(得分:0)

change()函数直接绑定到下拉元素?这是AFAIK最准确的答案。

$('#yourDropdown').change(function () {
    var selection = this.value;
    // do something with the value
});

这是一个更广泛的答案: 通常,对于大多数东西,您可以绑定到DOMSubtreeModified - 这是一致的,并在某些DOM节点的子树中发生更改时触发。如果将其绑定到select元素。当选择一个选项时,它应该触发。

$('#yourDropdown').bind('DOMSubtreeModified', function(e) {
  var selection = this.value;
  // handle the detected change
})

问题是没有确切的HTML代码,我可以看到精确的类和下拉结构(可能是非标准的东西?)编写句柄部分很难。此外,当检测到更改时,存储的值在哪里?小提琴会很好,所以我可以编辑你缺少的部分;)

答案 1 :(得分:0)

查看我的代码,它可能对您有帮助。

&#13;
&#13;
$('#priceSelect').change(function() {
  var rewardPts = $(this).find(":selected").val();
  var t_section = '<p>Sign up to earn '+ rewardPts + ' points for this purchase</p>';
  $('#msg').append(t_section);
});
&#13;
<select name="price" id="priceSelect">
  <option value="10">10</option>
  <option value="100">100</option>
  <option value="200">200</option>
  <option value="500">500</option>
</select>
  
<div id="msg"></div>
  
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

为您的问题尝试以下代码

HTML CODE

calcuateRewardPoint(); // Function Call initial pageLoading

$('body').on("change","select",function() {
  calcuateRewardPoint();
});

// Calculate RewardPoint

function calcuateRewardPoint(){
  var rewardPts = $("#priceSelect").find(":selected").val();
  var t_section = '<p>Sign up to earn '+ rewardPts + ' points for this purchase</p>';
  $('#msg').append(t_section);
}

[To see in jsFiddle][1]

JS CODE HERE

==> Satisfying dependencies
==> Downloading https://haskell.org/platform/download/8.2.1/Haskell%20Platform%2
######################################################################## 100.0%
==> Verifying checksum for Cask haskell-platform
==> Note: running "brew update" may fix sha256 checksum errors
Error: Checksum for Cask 'haskell-platform' does not match.

Expected: b0182bb721b5dff3d66794cbdcea93cec562dc254fcf23c0e7a1a7a8d680aaa7
Actual:   05fc22d2cefdf67f1da2f62a90fda73a746accd08b44ec197046972b82afee06
File:     /Users/william/Library/Caches/Homebrew/Cask/haskell-platform--8.2.1.pkg

答案 3 :(得分:0)

&#13;
&#13;
$("#priceSelect").change(function(){
var  t_section = ('<p>Sign up to earn '+ $(this).val()+ ' points for this purchase</p>');
$("#msg").html(t_section)
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<select name="price" id="priceSelect">
  <option value="10">10</option>
  <option value="100">100</option>
  <option value="200">200</option>
  <option value="500">500</option>
</select>

<div id="msg"></div>
&#13;
&#13;
&#13;