获取每个属性及其值

时间:2016-06-09 19:16:21

标签: javascript jquery html attributes each

举个例子,假设我有以下HTML设置。

<div class="element" data-xy-ko="value1" data-xy-ko2="value2">
   <span data-xy-ko="value3">testing</span>
   <ul>
     <li data-xy-ko="value4" data-xy-ko2="valu5">testing</li>
     <li data-xy-ko="value5">tsjbd</li>
   </ul>
</div>

有多个数据属性。一些属性的共同点是,只要它们以data-xy-ko

开头,它们就以data-xy-ko2data-xy-ko或任何其他组合开头

问题:如何获取与data-xy-ko匹配的所有数据属性,并为找到的每个属性运行每个循环,我可以获取每个属性值,包含它的元素,以及找到每个人的其他东西。

编辑我可以在同一元素上找到多个匹配属性。

2 个答案:

答案 0 :(得分:1)

您可以使用jQuery按属性

进行选择
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    // Initialize the alert view controller.
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Loading Dataset" message:@"Please wait...\n\n\n" preferredStyle:UIAlertControllerStyleAlert];

    // Present the alert view controller.
    [self presentViewController:alert animated:YES completion:^{

        /// Perform long operation here...

        dispatch_after(0, dispatch_get_main_queue(), ^{

            // Dismiss the alert message.
            [loadAlertController dismissViewControllerAnimated:YES completion:nil];

            /// Execute rest of code INDSIDE the dispatch code block INSTEAD of after it...
        });
     }];
}

答案 1 :(得分:0)

这不是直接的答案,因为我正在改变您的HTML前提,但这是处理您希望实现的目标的更好方法,IMO。我会这样做:

<div class="element" data-xy-ko="value1 value2">
   <span data-xy-ko="value3">testing</span>
   <ul>
     <li data-xy-ko="value4 value5">testing</li>
     <li data-xy-ko="value5">tsjbd</li>
   </ul>
</div>

然后你可以说:

var myValues = $(element).attr('data-xy-ko');
var valuesArray = myValues.split(" ");
for(var i = 0; i < valuesArray.length; i++) {
    switch(valuesArray[i]) {
        case "value 1":
            // do stuff
            break;
        case "value 2":
            // do stuff
            break;
        case "value 3":
            // do stuff
            break;
        ...etc...
    }
}