我正在尝试更改列表视图中给定行的数据图标。 jquery attr()函数和javascript setAttribute()函数都不起作用。
<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>";
}
}
答案 0 :(得分:0)
您将行设置为
var row = "row" + id;
但你的选择器是
$(row)
制作它,例如
$('row1')
如果是ID,则应为
$('#'+row)
编辑在您的选择器工作后,要更改jquery mobile中的图标,请使用buttonMarkup
。
$('#'+row).buttonMarkup({ icon: "star" });
答案 1 :(得分:0)
最好在插入dom之前更改html:
var toInsert = $( xmlhttp.responseText );
toInsert.attr("data-icon", "arrow-d");
$("#issue"+id+"Upvote").html().append( toInsert );
答案 2 :(得分:0)
想出来! $(row.toString())找到(&#39;的.ui图标&#39;)removeClass(&#39;的UI图标定制&#39;)。addClass(&#39; UI-icon-星&#39;);感谢