<div id="test"></div>
<script>
$(document).ready(function() {
alert($('#test').id);
});
</script>
De ce nu - 't cele de mai sus muncă, și cum ar trebui să fac asta?
JQuery mod:
$('#test').attr('id')
În exemplu:
$(document).ready(function() {
console.log($('#test').attr('id'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="test"></div>
Sau prin DOM:
$('#test').get(0).id;
sau chiar :
$('#test')[0].id;
și motivul pentru utilizare de $('#testa').get(0)
în JQuery sau chiar $('#testa')[0]
este ca $('#testa')
este un selector JQuery și returnează o matrice() rezultatelor un singur element de funcționalitatea implicit
o alternativă pentru DOM selector jquery este
$('#test').prop('id')
care este diferit de .attr()
și $('#testa').prop('foo')
apucă specificate DOM foo
de proprietate, în timp ce $('#testa').attr('foo')
apucă specificate HTML " foo " atribut și puteți găsi mai multe detalii despre diferențele de aici.
`$('selector').attr('id') va returna id-ul de prima potrivire element. Referință.
Dacă set conține mai mult de un element, puteți folosi convenționale .fiecare
an pentru a reveni o matrice care conține pe fiecare dintre id-urile:
var retval = []
$('selector').each(function(){
retval.push($(this).attr('id'))
})
return retval
Sau, daca're dispuși pentru a obține un pic indraznet, puteți evita înveliș și de a folosi .harta
shortcut.
return $('.selector').map(function(index,dom){return dom.id})
"id" este o proprietate a unui html Element
. Cu toate acestea, atunci când scrie $(" ceva")
, se returnează un obiect jQuery care înfășoară de potrivire element DOM(s). Pentru a obține prima de potrivire element DOM înapoi, sun ia(0)
$("#test").get(0)
Pe acest nativ element, puteți apela de identitate, sau orice alt nativ DOM proprietate sau funcție.
$("#test").get(0).id
Ca's motivul pentru care " id " e't de lucru în cod.
Alternativ, utilizați jQuery's atră
metodă ca și alte răspunsuri sugerează pentru a obține " id " atribut de primul element de potrivire.
$("#test").attr("id")
.id
nu este valid funcție jquery. Ai nevoie de a utiliza .attr()
funcția de a accesa atributele un element de care dispune. Puteți utiliza .attr()
pentru ambele modifica valoarea unui atribut prin specificarea doi parametri, sau pentru a obține valoarea specificând una.
Dacă doriți să obțineți un ID al unui element, las's spun de un selector de clasă, atunci când un eveniment (în acest caz, faceți clic pe eveniment) a fost tras pe acel element specific, atunci următoarele va face treaba:
$('.your-selector').click(function(){
var id = $(this).attr('id');
});
Ei bine, se pare că nu a fost o soluție și-ar dori să propună propria mea soluție care este o extindere a JQuery prototype's. Am pus acest lucru într-un fișier Helper, care este încărcată după biblioteca JQuery, prin urmare, verificați fereastra.jQuery`
if (window.jQuery) {
$.prototype.id = function () {
if (this.length > 1) {
var val = [];
this.each(function (idx, el) {
val.push($(el).id());
});
return val;
} else {
return this.attr('id');
}
}
}
Acesta nu poate fi perfect, dar este un început, poate, obtinerea includerea în biblioteca JQuery.
Returnează o singură valoare de tip șir sau o Serie de valori șir. Matrice de valori șir, este pentru un eveniment multi-element selector fost folosit.
$('#testa')
returnează un obiect jQuery, astfel încât să puteți't folosi pur și simplu obiectul.id` pentru a obține "Id"
ai nevoie de a utiliza `$('#testa').attr('id'), care se întoarce necesare " ID " al elementului
Acest lucru poate fi realizat după cum urmează ,
$('#testa').get(0).id
care este egal cu document.getElementById('de testare').id
Poate util pentru altii care gasesc acest thread. Codul de mai jos va funcționa doar dacă deja utilizați jQuery. Funcția returnează întotdeauna un element de identificare. Dacă elementul nu't au un identificator de funcție generează identificare și adăuga acest element.
var generatedIdCounter = 0;
$.fn.id = function() {
var identifier = this.attr('id');
if(!identifier) {
generatedIdCounter++;
identifier = 'isGenerated_' + generatedIdCounter;
this.attr('id', identifier);
}
return identifier;
}
Cum să utilizați:
$('.classname').id();
$('#elementId').id();
Aceasta este o întrebare veche, dar, ca de 2015 acest lucru poate lucra de fapt:
$('#test').id;
Și puteți face, de asemenea, misiuni:
$('#test').id = "abc";
Atâta timp cât vă definiți următoarele plugin JQuery:
Object.defineProperty($.fn, 'id', {
get: function () { return this.attr("id"); },
set: function (newValue) { this.attr("id", newValue); }
});
Interesant, dacă element
este un element de DOM, atunci:
element.id === $(element).id; // Is true!
Acest lucru poate fi element de identitate , de clasă , sau automat, folosind chiar
------------------------
$(this).attr('id');
=========================
------------------------
$("a.remove[data-id='2']").attr('id');
=========================
------------------------
$("#abc1'").attr('id');
=========================
De la id este un atribut, o puteți obține prin utilizarea atră
metoda.
Important: dacă doriți să creați un nou obiect cu jQuery și obligatoriu un eveniment, te TREBUIE utilizare prop și nu attr, astfel:
$("<div/>",{ id: "yourId", clasa: "yourClass", html: "<span></span>" }).pe("faceți clic pe", function(e) { alert($(aceasta).prop("id")); }).appendTo(" ceva");
Acest lucru va în cele din urmă a rezolva problemele tale:
să spunem că ai multe butoane de pe o pagină și doriți să modificați una dintre ele cu jQuery Ajax (sau ajax nu) în funcție de ID-ul lor.
vă permite, de asemenea, spune că aveți multe tipuri diferite de butoane (pentru forme, pentru aprobare și pentru astfel de scopuri), și doriți jQuery numai pentru a trata "ca" butoane.
aici este un cod care este de lucru: jQuery va trata numai butoanele care sunt de clasă .cls-hlpb, se va lua id-ul de butonul care a fost apasat și se va schimba în funcție de datele care vin de la ajax.
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> </script>
<script>
$(document).ready(function(){
$(".clshlpbtn").on('click',function(e){
var id = $(e.target).attr('id');
alert("The id of the button that was clicked: "+id);
$.post("demo_test_post.asp",
{
name: "Donald Duck",
city: "Duckburg"
},
function(data,status){
//parsing the data should come here:
//var obj = jQuery.parseJSON(data);
//$("#"+id).val(obj.name);
//etc.
if (id=="btnhlp-1")
$("#"+id).attr("style","color:red");
$("#"+id).val(data);
});
});
});
</script>
</head>
<body>
<input type="button" class="clshlpbtn" id="btnhlp-1" value="first btn"> </input>
<br />
<input type="button" class="clshlpbtn" id="btnhlp-2" value="second btn"> </input>
<br />
<input type="button" class="clshlpbtn" id="btnhlp-9" value="ninth btn"> </input>
</body>
</html>
codul a fost luat de la w3schools și s-a schimbat.
<html>
<head>
<link rel="stylesheet"href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<?php
// include Database connection file
include("db_connection.php");
// Design initial table header
$data = '<table class="table table-bordered table-striped">
<tr>
<th>No.</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email Address</th>
<th>Update</th>
<th>Delete</th>
</tr>';
$query = "SELECT * FROM users";
if (!$result = mysqli_query($con, $query)) {
exit(mysqli_error($con));
}
// if query results contains rows then featch those rows
if(mysqli_num_rows($result) > 0)
{
$number = 1;
while($row = mysqli_fetch_assoc($result))
{
$data .= '<tr>
<td>'.$number.'</td>
<td>'.$row['first_name'].'</td>
<td>'.$row['last_name'].'</td>
<td>'.$row['email'].'</td>
<td><button onclick="DeleteUser('.$row['id'].')" class="btn btn-danger">Delete</button>
</td>
</tr>';
$number++;
}
}
else
{
// records now found
$data .= '<tr><td colspan="6">Records not found!</td></tr>';
}
$data .= '</table>';
echo $data;
?>
<script type="text/javascript">
function DeleteUser(id) {
var conf = confirm("Are you sure, do you really want to delete User?");
if (conf == true) {
$.ajax({
url:'deleteUser.php',
method:'POST',
data:{
id:id
},
success:function(data){
alert('delete successfully');
}
}
});
deleteUser.php
<?php
// check request
if(isset($_POST['id']) && isset($_POST['id']) != "")
{
// include Database connection file
include("db_connection.php");
// get user id
$user_id = $_POST['id'];
// delete User
$query = "DELETE FROM users WHERE id = '$user_id'";
if (!$result = mysqli_query($con, $query)) {
exit(mysqli_error($con));
}
}
?>