GVKun编程网logo

javascript – 查找单个元素的所有数据属性(js查找元素的基本方法)

2

本文将介绍javascript–查找单个元素的所有数据属性的详细情况,特别是关于js查找元素的基本方法的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关

本文将介绍javascript – 查找单个元素的所有数据属性的详细情况,特别是关于js查找元素的基本方法的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于javascript – jQuery所有数据属性的每个循环、javascript – jQuery:删除前n个元素后的所有元素?、javascript – PHP – 检索与单选按钮对应的所有数据、javascript – ReactJs查找绑定到元素的所有事件的知识。

本文目录一览:

javascript – 查找单个元素的所有数据属性(js查找元素的基本方法)

javascript – 查找单个元素的所有数据属性(js查找元素的基本方法)

任何人都知道从单个元素中获取所有数据属性的快速有效方法吗?我意识到jQuerys .data()会做到这一点,但它不会给我使用.attr()设置数据属性.除非我首先使用.data()选择数据属性;此外,您无法通过使用.data()添加的数据属性选择元素,这看起来很愚蠢.

HTML

<div data-foo="bar"></div>

JavaScript的

$("div").data();
//returns {foo:bar} good :)

$("div").attr("data-hello","world");
$("div").data()
//returns {foo:bar} no good :(

$("div[data-hello]");
//returns the div,all good :)

$("div").data("find","me");
$("div[data-find]");
//returns nothing,very bad

希望这能解释

解决方法

您可以在现代浏览器中使用 dataset属性(仅限IE11),但您可以增强解决方案以使用 .attributes来支持旧版浏览器

var $in = $('input'),input = $in[0],//here input is a dom element reference
    dataMap = input.dataset;
//if dataset is not supported
if (typeof dataMap == 'undefined') {
    dataMap = {};
    $.each(input.attributes,function (key,attr) {
        var match = attr.name.match(/^data-(.+)/);
        if (match) {
            dataMap[match[0]] = attr.value;
        }
    })
}
$.each(dataMap,value) {
    console.log(key,value)
})

演示:Fiddle

javascript – jQuery所有数据属性的每个循环

javascript – jQuery所有数据属性的每个循环

我试图在动画后重置数据属性,并且在应用answer 2 of this post的技术时遇到了一些麻烦.

不知道我在这里缺少什么.从理论上讲,对于每个数据属性等都是可行的.

更新:

值得一提的是数据键都不同.例如. data-1 =“abc”,data-2 =“abc”等,因此需要一个简单查找数据属性的for循环.

HTML

var total = 0;    
$.each($('*').data(), function(key, value) {        
    if (key){    
        var thiis = $(this);            
        total += key;            
        thiis.removeData();            
        thiis.data(total, value);
    }
});

解决方法:

热潮,明白了.该脚本有很多开销,因此在用户将等待的实例中运行它不是一个选项,IMO.您可以使用特异性而不是*选择器来改进它.

JavaScript(jQuery):

var counter  = 1; // not necessary for your implementation, using it to adjust numeric data keys

$('*').each(function(){ // query all selectors and run through a loop

    var thiis    = $(this),
        dataAttr = thiis.data(),
        i;

    if (dataAttr) { // if the element has data (regardless of attribute)

        var newAttrs = []; // for the element's new data values

        $.each(dataAttr, function(key, value) { // loop through each data object

            var newKey  = key + counter, // calculate new data key
                newAttr = [newKey, value]; // push the new data set

            newAttrs.push(newAttr); // push to elements new attributes array

            thiis
                .removeData(key) // remove the data
                .removeAttr('data-' + key); // remvoe the attribute (unnecessary)
        });

        for (i = 0; i < newAttrs.length; i++) { // for each new attribute

            thiis.data(newAttrs[i][0], newAttrs[i][1]); // add the data
            thiis.attr('data-' + newAttrs[i][0], newAttrs[i][1]); // add the attribute (unnecessary)
        }
    }
});

javascript – jQuery:删除前n个元素后的所有元素?

javascript – jQuery:删除前n个元素后的所有元素?

我有一些接近这个:

<div>
    <a><img /></a>
    <a><img /></a>
    <a><img /></a>
    <a><img /></a>
    <a><img /></a>
    <a><img /></a>
</div>

我不知道有多少< a>< img />< / a>将生成(我从API获取它们),我想删除前三个(n)< a>< img />< / a>之后的所有元素.我怎么能在jQuery中做到这一点?

解决方法:

试试这个.

$(".batman-pictures a:nth-child(3)").nextAll().remove();

javascript – PHP – 检索与单选按钮对应的所有数据

javascript – PHP – 检索与单选按钮对应的所有数据

我正在使用PHP,并且没有经验.我在一个表中显示数据,每个行的开头都有一个单选按钮.我想检索与我检查的单选按钮对应的行中存在的所有数据.
这是我到目前为止所做的事情:

<form name="test" method="POST">
        <table>
            <tr>
                <th></th>
                <th>book_id</th>
                <th>card no</th>
                <th>fname</th>
                <th>lname</th>
            </tr>
        
<?PHP
            $conn = MysqL_connect("localhost", "root", "");
            if ($conn) {
                MysqL_select_db("library");
            } else {
                echo 'no such database';
            }

$query_test = "select book_id2,a.card_no,fname,lname from book_loans a, borrower b where a.card_no = b.card_no ";

            $result = MysqL_query($query_test);

            if ($result === FALSE) {
                MysqL_error();
            } else {

                while ($rows = MysqL_fetch_assoc($result)) {
                    echo "<tr>";
                    echo "<td><input type='radio' name='test'></td>";
                   echo "<td>" .$rows['book_id2']. "</td>";
                   echo "<td>" .$rows['card_no']. "</td>";
                    echo "<td>" .$rows['fname']. "</td>";
                    echo "<td>" .$rows['lname']. "</td>";

                    echo "</tr>";
                }
            }

       ?>
 <input type="submit" name="test_val" value="submit"/>
        </table>
        </form>

在这里,我想打印数据,即单击提交按钮时book_id,card_no,fname,lname:

<?PHP

if($_POST)
            {
                if(isset($_POST['test_val']))
                {
                 // TO PRINT THE DATA CORRESPONDING TO THE RAdio BUTTON      
                }
            }
?>

解决方法:

在每个< td>中添加隐藏的输入字段.行.例如:

echo "<td>".$rows['book_id2']."</td><input type='hidden' name ='book_id2' value='".$rows['book_id2']."' />";

我尝试编写JavaScript但在JQuery中这更容易.在结束之前添加这些脚本< / body>标签.

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
 <script>
    var toggleInput = function(){
        $('input[type=hidden]').prop('disabled', true);
        var selection = $('input:checked').eq(0);
            selection.parent().parent().find('input[type=hidden]').each(function(){
               $(this).prop('disabled',false);
            });
        }
        $(form).on('submit',toggleInput);
 </script>

JQuery在这样操作DOM时使用了很多.它减少了很多可以在JavaScript中看到的重复.虽然如果只用JavaScript做一些事情更容易,那就去做吧!

在表单提交时,我们将禁用所有隐藏元素.然后我们找到有效的无线电盒,并激活对应于无线电盒的隐藏元素.

这是一个解决方案,可能需要进行调整. JavaScript和JQuery是你解决这个问题的朋友.

javascript – ReactJs查找绑定到元素的所有事件

javascript – ReactJs查找绑定到元素的所有事件

我试图找出当我点击使用reactJS构建的网站上的元素时被解雇的内容,我点击该元素并触发事件,但是当我尝试el.click()时没有任何反应,事件正在触发如果它是鼠标右键或鼠标左键,我不知道关于reactJS的第一件事,但我正在阅读reactJS有自己的“合成事件”,这应该包裹原生事件!所以我假设el.click()应该触发这个合成事件,无论它是什么.但事实并非如此.

我创建了一个事件,将一个字符串写入控制台,以测试它是否会在我单击该元素时运行,但它没有!相反,原始应用程序事件被触发.

所以我想也许如果我可以列出这个元素的所有“合成事件”,我可以用el.dispatchEvent(事件)激活那个?

我希望我在这里有所作为,谢谢!

解决方法

el.dispatchEvent(event)应该正确地调度事件.虽然我认为“本机”事件监听器不会被触发.只有内部反应.合成事件不会泄漏到外面.

尝试向document.body添加事件侦听器.然后,您可以通过检查event.target来确定是否单击了按钮(如果事件没有停止冒泡).

关于javascript – 查找单个元素的所有数据属性js查找元素的基本方法的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于javascript – jQuery所有数据属性的每个循环、javascript – jQuery:删除前n个元素后的所有元素?、javascript – PHP – 检索与单选按钮对应的所有数据、javascript – ReactJs查找绑定到元素的所有事件的相关信息,请在本站寻找。

本文标签: