通过变量选择数据属性名称

时间:2018-03-08 18:10:05

标签: jquery

我无法弄清楚正确的语法是什么:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <ImageView
        android:id="@+id/icon"
        android:layout_width="24dp"
        android:layout_height="24dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="@dimen/design_bottom_navigation_margin"
        android:layout_marginBottom="@dimen/design_bottom_navigation_margin"
        android:duplicateParentState="true" />
    <android.support.design.internal.BaselineLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|center_horizontal"
        android:clipToPadding="false"
        android:paddingBottom="10dp"
        android:duplicateParentState="true">
        <TextView
            android:id="@+id/smallLabel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="@dimen/design_bottom_navigation_text_size"
            android:singleLine="true"
            android:duplicateParentState="true" />
        <TextView
            android:id="@+id/largeLabel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="invisible"
            android:textSize="@dimen/design_bottom_navigation_active_text_size"
            android:singleLine="true"
            android:duplicateParentState="true" />
    </android.support.design.internal.BaselineLayout>
</merge>

jquery(其中index是一个循环循环):

<select>
    <option data-option1="test"></option>
</select>

这些工作:

$('fieldset').each(function(index, element){
   var name = 'option'+index;
   var res = $('select').find(':selected').data(name);

   console.log(res);
});

这不是(索引肯定正确注册,因为我用它来选择其他元素):

var name = 'option1';
var name = 'option'+1;

我已尝试更改toString()等以防万一,但无法解决问题。如果我只使用例如名称,它就有效数据(&#39; option1&#39;)但不是它的变量

2 个答案:

答案 0 :(得分:0)

您可以使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select> <option data-option1="test"></option> </select>获取数据属性值。此外,该属性为选项而不是选择,因此请使用正确的选择器。

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    let newString = NSString(string: textField.text!).replacingCharacters(in: range, with: string)

    print(newString)

      return true;
}
rndvar

答案 1 :(得分:0)

select元素没有data-option1属性。

您不仅需要询问正确的数据属性,还要从元素中询问实际具有该属性:

let index = 1
let name = 'option' + index

console.log($(`select option[data-${name}]`).data(name));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
    <option data-option1="test"></option>
</select>