【问题标题】:Traverse elements collectively in javascript?在javascript中集体遍历元素?
【发布时间】:2014-01-16 06:13:15
【问题描述】:

我的 JSP 中有 7 个文本字段。在我的 javascript 中,我经常需要集体填充这些文本字段、清空、验证等。

所以目前在我的 JS 中,我将它们的 id 保留为 parameter_1、parameter_2 等,因为它有助于我使用 id 属性轻松地一起遍历它们。

JS:

function emptyThresholdTextFields(){    
    $('[id^="parameter_"]').each(function(i, value) {
        $(this).val('');
    });
}


function fillThresholdTextFields(data){        
    $("[name='minNumberOc']").val(data.minNumberOc);
    $("[name='minDurationOc']").val(data.minDurationOc)
    $("[name='maxNumberIc']").val(data.maxNumberIc)
    $("[name='maxDurationIc']").val(data.maxDurationIc)
    $("[name='maxNumberCellId']").val(data.maxNumberCellId)
    $("[name='distinctBnumberRatio']").val(data.distinctBnumberRatio)
    $("[name='minPercentDistinctBnumber']").val(data.minPercentDistinctBnumber)
}

JSP:

<s:textfield id="thresholdParameter_1"
        label="Minimum Number of OG Calls" required="true"
        name="minNumberOc"
        onkeypress="return isNumber(event,'thresholdParameter_1')">
</s:textfield>
  1. 将id 保持在parameter1、parameter2 等形式中是否是一个好习惯?
  2. fillThresholdtextFields 中的填充一样,我必须关联地访问每个参数。因此,以后如果参数增加,它将变得更加麻烦。是否有其他替代方法可以轻松实现 1 和 2?

【问题讨论】:

    标签: java javascript jsp struts2


    【解决方案1】:

    ID 应该是描述性的,因此使用参数 1、参数 2 等不是好的做法。要清空所有字段,您可以一次简单地抓取它们并设置它们的值。例如。

    $("input[type='text']").val("");  
    

    这会将 val 设置为它匹配的所有内容的空字符串。如果页面上有多个表单,您可能希望将其范围缩小到特定的一个,即。

    $("#someform input['type=text']").val("");
    

    对于 #2,如果需要将每个字段设置为不同的值,您可能需要分别访问每个字段。但如果有些相同,您可以使用上述相同的技术同时设置其中一些。例如使用一个类。

    $(".min-oc").val(data.somevalue);
    

    在本例中为每个元素设置一个“min-oc”类。

    【讨论】:

      猜你喜欢
      • 2020-04-07
      • 2016-03-06
      • 2018-04-16
      • 1970-01-01
      • 2022-11-20
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      • 1970-01-01
      相关资源
      最近更新 更多