Я пытаюсь изменить значок данных данной строки в виде списка. Функция jquery attr () и функция setAttribute () javascript не работают.
<script>
function increment(id) {
var row = "row" + id;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("issue"+id+"Upvote").innerHTML=xmlhttp.responseText;
$(row).attr("data-icon", "arrow-d");
}
}
xmlhttp.open("GET","increment.php?q="+id,true);
xmlhttp.send();
}
</script>//Fetching from your database table.
$query = "SELECT * FROM $usertable";
$result = mysql_query($query);
if ($result) {
while($row = mysql_fetch_array($result)) {
$issue = $row["issueName"];
$upvotes = $row["upvotes"];
$id = $row["issueID"];
echo "<li data-icon=\"arrow-u\" id=\"row".$id . "\"> <a href=\"point.php\">".$issue ."</a><a href=\"javascript:increment(".$id.");\"></a> <span id=\"issue".$id."Upvote\" class=\"ui-li-count\">" .$upvotes."</span></li>";
}
}
Лучше изменить HTML, прежде чем вставлять в DOM:
var toInsert = $( xmlhttp.responseText );
toInsert.attr("data-icon", "arrow-d");
$("#issue"+id+"Upvote").html().append( toInsert );
Вы устанавливаете строку как
var row = "row" + id;
Но ваш селектор
$(row)
Делая это, например
$('row1')
Если это идентификатор, он должен быть
$('#'+row)
РЕДАКТИРОВАТЬ Когда ваш селектор заработает, чтобы изменить значок в jquery mobile, используйте buttonMarkup
,
$('#'+row).buttonMarkup({ icon: "star" });
Догадаться! $ (Row.toString ()) найти ( ‘UI-значок.) RemoveClass (‘ щ-пиктограммами обычая ‘) addClass (‘ щ-икона-звезда’)…; Спасибо